ソーシャルネットワークの普及とオンライン通信方法の多様化により、リアルタイムチャットシステムは日常生活と仕事の重要なツールになりました。チャットの履歴は、使用時間の増加に伴い非常に大きく、履歴メッセージを迅速かつ正確に取得する方法がユーザーエクスペリエンスの鍵となっています。
この記事では、チャットレコードの検索機能とその結果をPHPベースのライブチャットシステムで実現する方法を紹介し、開発者が参照して参照できる実用的なコード例を添付します。
チャットレコード検索を実装する前に、合理的なデータベーステーブルデザインが基礎となります。一般的に使用されるチャットレコードテーブル構造には、一般に次のフィールドが含まれています。
まず、ユーザーインターフェイスに検索ボックスと検索ボタンを追加して、ユーザーがキーワードを入力して検索リクエストを送信できるようにする必要があります。
<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バックエンド処理を通じて、フロントエンド検索インターフェイスと組み合わせて、チャットレコード検索とリアルタイムチャットシステムの結果表示機能を効果的に実現できます。このソリューションは基本的なデモンストレーションであり、開発者は、システムの実用性とユーザーエクスペリエンスを改善するために、ページング、検索最適化、許可制御など、実際のニーズに応じて拡張および最適化できます。