현재 위치: > 최신 기사 목록> PHP 실시간 채팅 시스템의 채팅 기록 검색 기능 실현 및 결과 표시

PHP 실시간 채팅 시스템의 채팅 기록 검색 기능 실현 및 결과 표시

M66 2025-07-18

PHP 실시간 채팅 시스템의 채팅 기록 검색 기능 실현 및 결과 표시

소개

소셜 네트워크의 대중화와 온라인 커뮤니케이션 방법의 다양 화를 통해 실시간 채팅 시스템은 일상 생활과 업무에서 중요한 도구가되었습니다. 사용 시간이 증가함에 따라 채팅 기록이 크며, 역사적 메시지를 빠르고 정확하게 검색하는 방법이 사용자 경험의 열쇠가되었습니다.

이 기사에서는 Chat Records의 검색 기능과 PHP 기반 라이브 채팅 시스템에서 결과를 실현하는 방법을 소개하며 개발자가 참조하고 참조 할 수있는 실제 코드 예제가 동반됩니다.

데이터베이스 디자인

채팅 레코드 검색을 구현하기 전에 합리적인 데이터베이스 테이블 디자인이 기초입니다. 일반적으로 사용되는 채팅 레코드 테이블 구조는 일반적으로 다음 필드를 포함합니다.

  • chat_id : 채팅 레코드에 대한 고유 식별자
  • 발신자 : 메시지 발신자
  • 수신기 : 메시지 수신자
  • 메시지 : 채팅 내용
  • 타임 스탬프 : 메시지 보내기 타임 스탬프

검색 기능 구현

먼저 사용자 인터페이스에 검색 창과 검색 버튼을 추가하여 사용자가 키워드를 입력하고 검색 요청을 제출할 수 있어야합니다.

 <form action="search.php" method="post">
  <input type="text" name="keyword" placeholder="키워드를 입력하십시오">
  <input type="submit" value="찾다">
</form>

배경은 PHP를 통해 검색 요청을 처리하고 데이터베이스에 연결하며 퍼지 쿼리를 실행합니다. 예제는 다음과 같습니다.

 <?php
// 데이터베이스 연결 구성
$host = 'localhost';
$dbname = 'chat_system';
$username = 'root';
$password = '';

try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "데이터베이스 연결에 실패했습니다: " . $e->getMessage();
    exit;
}

$keyword = $_POST['keyword'];

$sql = "SELECT * FROM chat_records WHERE message LIKE :keyword";
$query = $conn->prepare($sql);
$query->bindValue(':keyword', '%' . $keyword . '%');
$query->execute();

$results = $query->fetchAll(PDO::FETCH_ASSOC);

foreach ($results as $result) {
    echo $result['sender'] . ' ' . $result['message'] . '<br>';
}
?>

검색 결과 표시

사용자가 검색을 제출 한 후 검색 결과 페이지로 이동하여 관련 채팅 내용을 표시합니다. 예제 디스플레이 코드는 다음과 같습니다.

 <?php if(count($results) > 0): ?>
  <?php foreach($results as $result): ?>
    <div class="search-result">
      <p><?php echo $result['sender']; ?>: <?php echo $result['message']; ?></p>
      <p><?php echo $result['timestamp']; ?></p>
    </div>
  <?php endforeach; ?>
<?php else: ?>
  <p>관련 채팅 이력이 발견되지 않았습니다。</p>
<?php endif; ?>

코드 로직은 간결하고 명확합니다. 먼저 검색 결과가 존재하는지 여부를 결정합니다. 그것이 존재하는 경우, 메시지의 발신자, 내용 및 시간은 하나씩 출력됩니다. 그렇지 않으면 일치하는 레코드가 없습니다.

요약

프론트 엔드 검색 인터페이스와 결합 된 합리적인 데이터베이스 디자인 및 PHP 백엔드 처리를 통해 실시간 채팅 시스템의 채팅 레코드 검색 및 결과 디스플레이 기능을 효과적으로 실현할 수 있습니다. 이 솔루션은 기본 데모이며, 개발자는 페이징, 검색 최적화, 권한 제어 등과 같은 실제 요구에 따라 확장 및 최적화하여 시스템의 실용성과 사용자 경험을 향상시킬 수 있습니다.