Rumah >pembangunan bahagian belakang >tutorial php >PHP membangunkan pengenalan status dibaca dan belum dibaca mesej untuk fungsi sembang masa nyata

PHP membangunkan pengenalan status dibaca dan belum dibaca mesej untuk fungsi sembang masa nyata

王林
王林asal
2023-08-14 08:57:171084semak imbas

PHP membangunkan pengenalan status dibaca dan belum dibaca mesej untuk fungsi sembang masa nyata

PHP membangunkan pengenalan status mesej dibaca dan belum dibaca untuk fungsi sembang masa nyata

Dalam aplikasi dan tapak web sosial moden, fungsi sembang masa nyata telah menjadi bahagian penting. Apabila membangunkan fungsi ini, ciri penting ialah keupayaan untuk mengenal pasti status mesej yang dibaca dan belum dibaca. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi sembang masa nyata dan menambah penunjuk status baca dan belum dibaca untuk mesej.

Untuk melaksanakan fungsi ini, kami akan menggunakan pangkalan data MySQL untuk menyimpan maklumat pengguna dan rekod mesej. Berikut ialah dua jadual pangkalan data yang perlu kami buat:

jadual pengguna:

CREATE TABLE users (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL
);

jadual mesej:

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
);

Jadual pengguna mengandungi ID pengguna dan nama pengguna, dan jadual mesej mengandungi ID mesej, ID pengirim dan ID penerima , kandungan mesej dan status baca.

Seterusnya, kami akan menunjukkan cara melaksanakan pengenalpastian status dibaca dan belum dibaca bagi mesej dengan kod contoh berikut:

  1. Dapatkan senarai semua pengguna

    <?php
    // 连接到数据库
    $connection = mysqli_connect('localhost', 'username', 'password', 'database_name');
    // 获取用户列表
    $query = mysqli_query($connection, "SELECT * FROM users");
    $users = mysqli_fetch_all($query, MYSQLI_ASSOC);
  2. Muat mesej sembang

    rreee
  3. Swreee
  4. dan baca mesej

    <?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);

Dalam kod di atas, kami mula-mula menyambung ke pangkalan data dan mendapatkan senarai semua pengguna. Kemudian apabila memuatkan mesej sembang, kami mendapat mesej belum dibaca pengguna semasa daripada pangkalan data dan menandakannya sebagai telah dibaca. Akhir sekali, kami memaparkan mesej yang belum dibaca dan membaca mesej secara berasingan.

Melalui contoh di atas, kami berjaya melaksanakan fungsi pengenalan status dibaca dan belum dibaca bagi mesej. Apabila pengguna menerima mesej baharu, ia akan ditandakan sebagai belum dibaca, dan selepas pengguna melihat mesej itu, ia akan ditandakan sebagai dibaca.

Untuk menambah baik fungsi ini, kami boleh membuat penambahbaikan selanjutnya mengikut keperluan sebenar, seperti menambah pemberitahuan mesej baharu atau menambah resit penghantaran mesej, dsb. Walau bagaimanapun, pelaksanaan di atas telah memberikan kami asas yang baik, membolehkan kami menggunakan PHP untuk membangunkan pengenalan status dibaca dan belum dibaca dalam fungsi sembang masa nyata.

Atas ialah kandungan terperinci PHP membangunkan pengenalan status dibaca dan belum dibaca mesej untuk fungsi sembang masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn