現在の位置: ホーム> 最新記事一覧> PHP開発リアルタイムチャットメッセージ読み取りおよび未読ステータス識別チュートリアル

PHP開発リアルタイムチャットメッセージ読み取りおよび未読ステータス識別チュートリアル

M66 2025-07-30

PHP開発リアルタイムチャットメッセージ読み取りおよび未読ステータス識別チュートリアル

ライブチャットは、現代のソーシャルアプリケーションやウェブサイトの重要な機能となっています。この機能を開発するとき、ユーザーがどのメッセージが読み取られ、どのメッセージが読まれていないかを明確に確認できるようにすることが非常に重要な要件です。この記事では、PHPとMySQLを使用してこの機能を実装する方法を説明し、メッセージの読み取りと未読のステータス識別を実装します。

データベース設計

メッセージの読み取りと未読状態を達成するには、最初にデータベースを設計する必要があります。主に、ユーザーテーブルとメッセージテーブルの2つのテーブルが含まれます。

ユーザーテーブルを作成します

テーブルユーザーを作成します(
    id int(11)auto_incrementプライマリキー、
    ユーザー名前Varchar(50)nullではありません
);

メッセージテーブルを作成します

テーブルメッセージを作成します(
    id int(11)auto_incrementプライマリキー、
    sender_id int(11)nullではありません、
    receiver_id int(11)nullではありません、
    メッセージテキスト、
    is_read tinyint(1)デフォルト0
);

上記のデータベーステーブル設計では、「ユーザー」テーブルにはユーザーの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 [&#39;message&#39;]}</div> ";} //メッセージforeach($ read_messagesとして$ message){echo"を読むメッセージを急行<div class='read-message'>{$ message [&#39;message&#39;]}</div> ";}

上記のコードでは、最初にデータベースに接続し、現在のユーザーのすべての未読メッセージを取得します。次に、これらの未読メッセージのステータスを更新して、それぞれ読み取りメッセージと読み取りメッセージを読み取り、表示します。

要約します

このチュートリアルを通じて、PHPのライブチャット関数のメッセージの読み取りおよび未読ステータスの読み取りおよび未読のステータス識別を正常に実装しました。要件が変更されると、メッセージ通知やメッセージ受信などの機能を追加するなど、機能をさらに最適化および拡張できます。

上記は、PHP開発のリアルタイムチャット関数でメッセージの読み取りおよび未読ステータスの識別を実装するための基本的な方法です。それがあなたの開発作業に役立つことを願っています!