lkm
Messages postés43Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention23 novembre 2007
-
15 juil. 2005 à 21:07
lkm
Messages postés43Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention23 novembre 2007
-
16 juil. 2005 à 20:50
Bonsoir à tous,
Je suis entrain de développer un forum et je me suis dis que ça serait une bonne idée, lorsque quil y aura de nombreux posts sur ce forum, davoir crée un système qui affiche les messages que je nai pas lu depuis la dernière fois que je me suis logué. Je veux bien sûr faire en sorte que ce système soit disponible pour tous les membres.
Je suis parti dans une voie ou en fait jutilise une base de donnée qui liste tous les ID des topics et stocke le nombre de posts à lintérieur. Ensuite pour chaque membre je stocke le nombre de posts quil y avait lors de leur dernière visite (jajoute un champ à la base pour chaque nouveau membre avec un petit ALTER TABLE, c'est un peu barbare j'avoue ). Ainsi lorsque la personne se logue je peux faire apparaître un petit icône lorsquun message a été rajouté.
Je ne suis pas parti sur la voie des cookies parce que je ne veux pas que lorsque les cookies sont effacés, je ne perde pas les informations.
Ce que je voudrai savoir cest si il y a dautres moyens pour faire ce que je veux. (mise à part les cookies)
Et je voudrais savoir si ça posait un problème, le fait que pour chaque nouveau membre je rajoute un champ à ma table.
Jattends vos suggestions.
(ps : encore bravo pour toute la communauté code source, je développe un php, vb, javascript et un petit peu en c++ et ces sites sont une véritable mine de ressources, merci)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 16 juil. 2005 à 19:14
Bah en fait ma date de dernière action est stockée dans ma table
membres, elle correspond au timestamp du dernier clic sur "marquer les
messages comme lus/non lus"
bref si le visiteur clique sur "lus" la date de dernière action se
modifie pour devenir la date actuelle et je supprime dans une table
tous les "marqueurs de topics lus" (pour purger ma table qui garde en
mémoire si le membre a lu le topic ou pas, bref tout ce qui est sous
cette date sera considéré à juste titre comme lu puisque le mec a
cliqué sur "marquer comme lus"). Ensuite y'aura forcément de nouveaux
posts non plus, pour savoir si ils sont lus : si la date de dernière
action est supérieure, le message est obligatoirement lu, je zappe. Si
par contre la date de dernière action est inférieure, je regarde (via
une jointure) si dans mon autre table qui garde en mémoire les
consultations de topic, bah si le membre a déjà consulté le topic. Si
oui, je regarde si sa dernière date de consultation du topic est
supérieure à la date de dernier post dans ce topic. Si oui, bah le
message est toujours lu, sinon il est non lu et je change mes
enveloppes en fonction de ça ;-)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 15 juil. 2005 à 21:19
tu peux simplement mettre la date de la dèrnière action de l'utilisateur dans ta table qui contient son password, et afficher tout les messages postés depuis grace à la clause WHERE.
c'est bien plus propre qu'un alter table, et bien plus efficace...
In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy
lkm
Messages postés43Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention23 novembre 2007 16 juil. 2005 à 09:30
J'en avais pas parlé, mais j'avais pensé à la solution d'utiliser la date de post et la date de connexion du membre. Le problème de cette solution est qui si le membre se connecte, lit seulement une partie des messages puis se déconnecte, les autres messages seront également considéré comme lus. C'est ce que je veux éviter.
merci pour ces réponses rapides mais quelqu'un à t-il d'autres idées??!!!!
lkm
Vous n’avez pas trouvé la réponse que vous recherchez ?
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 16 juil. 2005 à 10:23
J'ai opté pour une méthode bourrine:
Quand l'user ouvre une page, une requête regarde quels sont les
nouveaux messages ( en fonction de la date de sa dernière action ).
Ensuite, j'utiliser une tables pour stocker les messages à voir...
C'est gros, mais ca permet aussi d'avoir les messages qui restent comme
non lus sur plusieurs connexions...
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 16 juil. 2005 à 11:40
Salut,
personnellement sur mon forum j'utilise la date de dernier post pour
tous les topics, et le membre a une date de dernière action en gros (la
date de dernière action correspond au clic sur "marquer les forums
comme lus/non lus"). Une fois que j'ai ça, je compare la date de
dernière action, les topics ayant une date de dernière réponse plus
récente et non lus par le membre sont affichés (pour le lu/non lu j'ai
une table à part)
lkm
Messages postés43Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention23 novembre 2007 16 juil. 2005 à 18:35
Comme je l'ai dit plus haut, Anthomicro, l'utilisation des dates de post et de dernière action sont possible. Le problème avec ça c'est que si l'utilisateur lis une partie des messages puis se déconnecte, les messages non lus ne seront plus distingués!!!
Par contre cookiesch, peut tu développer un peu plus ta solution please. Avec la description de la structure des tables. merci
lkm
Messages postés43Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention23 novembre 2007 16 juil. 2005 à 19:01
AHHHHHHH je crois que je viens de comprendre comment tu fais mais j'en suis pas sur. Dis moi qu'est ce que tu appelles une "date de dernière action"? parce que moi lorsque j'ai pensé à ce système avec les dates, je pensais comparer la date du dernier post dans un topic et la date de dernière connexion, si la date de dernière connexion et plus petite (timestamp) que la date de post du message alors il affiche la petite icone qui distingue les topics ou il y a un message non lu. Donc lorsqu'il se connecte la première fois, il a bien les petites icones pour tous les messages mais si il se déconnecte puis se reconnecte juste après, la date de dernière connexion est supérieure à la date du post du message et donc pas d'apparition des petites icones.
J'espère que tu comprends mon soucis, peut être que je fais une erreur de raisonement mais j'en doute. ++
lkm
lkm
Messages postés43Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention23 novembre 2007 16 juil. 2005 à 20:50
D'accord c'est malin ça, j'avais pas pensé à un système de "marqué comme lu" c'est pas mal, je vais accepter ta réponse, je te remercie.
Merci à tous les autres également
Si d'autres personnes ont des solutions, je les encourage à les mettre sur ce topic.