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

王林
Lepaskan: 2023-08-14 08:58:01
asal
1018 orang telah melayarinya

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
);
Salin selepas log masuk

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
);
Salin selepas log masuk

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);
    Salin selepas log masuk
  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);
    Salin selepas log masuk
    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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan