ホームページ >バックエンド開発 >PHPチュートリアル >PHP がリアルタイム チャット機能用のメッセージ既読および未読ステータス識別を開発
PHP は、リアルタイム チャット機能のためのメッセージ既読および未読ステータス識別を開発します。
現代のソーシャル アプリケーションや Web サイトでは、リアルタイム チャット機能が不可欠な部分になっています。この機能を開発する際、重要な機能はメッセージの既読と未読のステータスを識別する機能でした。この記事では、PHP を使用してリアルタイム チャット機能を開発し、メッセージの既読および未読のステータス インジケーターを追加する方法を紹介します。
この機能を実装するには、MySQL データベースを使用してユーザー情報とメッセージ レコードを保存します。作成する必要がある 2 つのデータベース テーブルは次のとおりです。
users テーブル:
CREATE TABLE users ( id INT(11) AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL );
messages テーブル:
CREATE TABLE messages ( id INT(11) AUTO_INCREMENT PRIMARY KEY, sender_id INT(11) NOT NULL, receiver_id INT(11) NOT NULL, message TEXT, is_read TINYINT(1) DEFAULT 0 );
user テーブルには、ユーザーの ID とユーザー名が含まれます。メッセージ テーブルには、メッセージ ID、送信者 ID、受信者 ID、メッセージの内容、および読み取りステータスが含まれます。
次に、次のサンプル コードを使用して、メッセージの既読および未読ステータスの識別を実装する方法を示します。
すべてのユーザーのリストを取得する
<?php // 连接到数据库 $connection = mysqli_connect('localhost', 'username', 'password', 'database_name'); // 获取用户列表 $query = mysqli_query($connection, "SELECT * FROM users"); $users = mysqli_fetch_all($query, MYSQLI_ASSOC);
チャット メッセージの読み込み
<?php // 获取用户ID $user_id = $_SESSION['user_id']; // 获取所有未读消息 $query = mysqli_query($connection, "SELECT * FROM messages WHERE receiver_id = '$user_id' AND is_read = 0"); $unread_messages = mysqli_fetch_all($query, MYSQLI_ASSOC); // 标记所有未读消息为已读 foreach ($unread_messages as $message) { $message_id = $message['id']; mysqli_query($connection, "UPDATE messages SET is_read = 1 WHERE id = '$message_id'"); } // 获取所有已读消息 $query = mysqli_query($connection, "SELECT * FROM messages WHERE receiver_id = '$user_id' AND is_read = 1"); $read_messages = mysqli_fetch_all($query, MYSQLI_ASSOC);
未読メッセージと既読メッセージの表示
<?php // 显示未读消息 foreach ($unread_messages as $message) { echo "<div class='unread-message'>{$message['message']}</div>"; } // 显示已读消息 foreach ($read_messages as $message) { echo "<div class='read-message'>{$message['message']}</div>"; }
上記のコードでは、まずデータベースに接続し、すべてのユーザーのリストを取得します。次に、チャット メッセージを読み込むときに、現在のユーザーの未読メッセージをデータベースから取得し、既読としてマークします。最後に、未読メッセージと既読メッセージを別々に表示します。
上記の例により、メッセージの既読・未読ステータス識別機能を実装することができました。ユーザーが新しいメッセージを受信すると、そのメッセージは未読としてマークされ、ユーザーがメッセージを閲覧した後は既読としてマークされます。
この機能を改善するために、新しいメッセージの通知の追加やメッセージ送信の受信確認の追加など、実際のニーズに応じてさらなる改善を行うことができます。ただし、上記の実装により優れた基盤が提供され、PHP を使用してリアルタイム チャット機能でのメッセージの既読および未読ステータスの識別を開発できるようになりました。
以上がPHP がリアルタイム チャット機能用のメッセージ既読および未読ステータス識別を開発の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。