Le chat en direct est devenu une fonctionnalité essentielle dans les applications sociales modernes et les sites Web. Lors du développement de cette fonctionnalité, c'est une exigence très importante pour s'assurer que les utilisateurs peuvent clairement voir quels messages ont été lus et quels messages n'ont pas été lus. Cet article vous guidera sur la façon d'implémenter cette fonctionnalité à l'aide de PHP et MySQL, et d'implémenter l'identification de l'état de lecture et non lu des messages.
Afin de réaliser l'état de lecture et non lu du message, nous devons d'abord concevoir la base de données. Il implique principalement deux tables: une table utilisateur et une table de messages.
Créer des utilisateurs de table ( id int (11) Clé primaire Auto_Increment, Nom d'utilisateur Varchar (50) pas null ));
Créer des messages de table ( id int (11) Clé primaire Auto_Increment, Sender_id int (11) pas nul, récepteur_id int (11) pas nul, Texte du message, is_read tinyint (1) par défaut 0 ));
Dans la conception de la table de base de données ci-dessus, le tableau «Utilisateurs» contient l'ID et le nom d'utilisateur de l'utilisateur, tandis que le tableau «Messages» enregistre l'ID de message, l'ID de l'expéditeur, l'ID du récepteur, le contenu du message et l'état de lecture du message.
Ensuite, nous utiliserons un exemple de code pour montrer comment obtenir l'état de lecture et non lu du message.
<?php // Connectez-vous à la base de données $connection = mysqli_connect('localhost', 'username', 'password', 'database_name'); // Obtenez la liste d'utilisateurs $query = mysqli_query($connection, "SELECT * FROM users"); $users = mysqli_fetch_all($query, MYSQLI_ASSOC);
<?php // Obtenez l'utilisateur actuelID $user_id = $_SESSION['user_id']; // Obtenez des messages non lus $query = mysqli_query($connection, "SELECT * FROM messages WHERE receiver_id = '$user_id' AND is_read = 0"); $unread_messages = mysqli_fetch_all($query, MYSQLI_ASSOC); // Mark Messages non lus comme lu foreach ($unread_messages as $message) { $message_id = $message['id']; mysqli_query($connection, "UPDATE messages SET is_read = 1 WHERE id = '$message_id'"); } // Get Lire Message $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 // Afficher les messages non lus foreach ($unread_messages as $message) { echo "<div class='unread-message'> {$ message ['message']}</div> ";} // Afficher le message de lecture foreach ($ read_messages comme $ message) {echo"<div class='read-message'> {$ message ['message']}</div> ";}
Dans le code ci-dessus, nous nous connectons d'abord à la base de données et obtenons tous les messages non lus pour l'utilisateur actuel. Nous mettons ensuite à jour l'état de ces messages non lus pour lire et afficher respectivement les messages non lus et lus.
Grâce à ce tutoriel, nous avons réussi à implémenter l'identification de l'état de lecture et non lue de l'état de lecture et non lu de la fonction de chat en direct dans PHP. À mesure que les exigences changent, vous pouvez optimiser et étendre davantage la fonctionnalité, telles que l'ajout de fonctionnalités telles que les notifications de messages ou les reçus de messages.
Ce qui précède est la méthode de base pour implémenter l'identification de l'état de lecture et non lu des messages dans le développement de PHP en temps réel. J'espère que ce sera utile à votre travail de développement!