現在の位置: ホーム> 最新記事一覧> チャットレコード検索機能のPHPリアルタイムチャットシステムの実現と結果の表示

チャットレコード検索機能のPHPリアルタイムチャットシステムの実現と結果の表示

M66 2025-07-18

チャットレコード検索機能のPHPリアルタイムチャットシステムの実現と結果の表示

導入

ソーシャルネットワークの普及とオンライン通信方法の多様化により、リアルタイムチャットシステムは日常生活と仕事の重要なツールになりました。チャットの履歴は、使用時間の増加に伴い非常に大きく、履歴メッセージを迅速かつ正確に取得する方法がユーザーエクスペリエンスの鍵となっています。

この記事では、チャットレコードの検索機能とその結果を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; ?>

コードロジックは簡潔で明確です。最初に、検索結果が存在するかどうかを判断します。それが存在する場合、メッセージの送信者、コンテンツ、および時間は1つずつ出力されます。それ以外の場合、マッチングレコードはありません。

要約します

合理的なデータベース設計とPHPバックエンド処理を通じて、フロントエンド検索インターフェイスと組み合わせて、チャットレコード検索とリアルタイムチャットシステムの結果表示機能を効果的に実現できます。このソリューションは基本的なデモンストレーションであり、開発者は、システムの実用性とユーザーエクスペリエンスを改善するために、ページング、検索最適化、許可制御など、実際のニーズに応じて拡張および最適化できます。