cs_adeliz
Messages postés55Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention24 novembre 2009
-
29 sept. 2006 à 11:07
cs_adeliz
Messages postés55Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention24 novembre 2009
-
2 oct. 2006 à 11:29
Bonjour tout le monde :)
Voila ma question.
Sur mon site, j'ai des membres (enregistrés dans une base de donnée).
Chaque membre peux poser un message sur une sorte de livre d'or (messages enregistrés dnas une base de donnée).
Ce que je souhaite, c'est qu'à la connection sur le site, chaque membre puisse voir quel(s) message(s) il n'as pas encore lu...
J'ai d'abord pensé à travailler sur la base de donnée et d'y enregistrer les messages lus par membres ou pas... Mais je ne sais pas comment faire des contraintes d'intégritées sur une base de donnée en MySQL...
Je suis ensuite passé sur le travail des cookies, mais cela le remplirais, cela n'allais pas être propre, et en plus de ça, il suffit que le mmebre se connecte chez quelqu'un d'autre pour ne pas savoir ou il en es dans les messages :(
Donc voila; si vous avez une bonne solution, ou si vous savez comment faire des contraintes d'intégritées avec MySQL, je vous attends impatiement.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 29 sept. 2006 à 15:13
Là t'en as pas besoin avec ce que je t'ai montré.
Sinon :
SELECT U.user_nom, M.sujet FROM users U LEFT JOIN messages M ON M.user_id = U.user_id
En prenant en compte que tu as un user_id dans ta table messages.
Et que tu fais un LEFT JOIN (y en a d'autres...INNER, RIGHT, JOIN tout court...)
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 29 sept. 2006 à 11:14
Salut!
Le plus simple serait d'enregistrer la date de dernière visite de ton membre: tout les messages ayant été postés ultérieurement seront marqués comme non-lus!
Ensuite, une fois cette liste récupérée, tu peux éventuellement la mettre dans un cookie (ou variable de session): chaque fois que le membre lit un des messages, ce l'enlève de la liste à lire...
Cette méthode amène un petit pb: si j'ai deux messages ( a et b ) à lire, que je lis a et que je quitte le site, b n'apparaîtra plus comme non lu lors d'une visite ultérieure... C'est pas génial, mais de faire un système qui se rappelle de tout peut demander pas mal d'espace bdd selon le nombre de messages et de membres de ton système... Et bcp de forums (phpBB, ...) fonctionnent comme ceci!
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
cs_adeliz
Messages postés55Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention24 novembre 2009 29 sept. 2006 à 11:42
Oui, j'y ai pensé, mais bon, plus éfficace cela sera, mieux je me porterais...
Pour ce qui est de la BDD, je ne pense pas que cela soit trop lourd, cela fait juste une table de plus et autant d'entitées que de membres, pas plus... (Pour tel membre, et pour tel message = Oui ou Non).
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 29 sept. 2006 à 12:07
Oui, mais si tu fais une entité par msg-membre, tu as une multiplication:
1000 msgs et 50 membres --> 50'000 entrées... Va falloir rassembler un peu, :P
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_adeliz
Messages postés55Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention24 novembre 2009 29 sept. 2006 à 13:14
Oui mais si tu as 200 membres et 3000 messages...
Imagine toi, la base de donnée va exploser !
Je pense que je ne vais pas avoir le choix, je vias faire comme proposé ci dessus...
Sauf que je vais enregistrer la date de derniere visite dnas ma BDD pour que même si le membre passe via un autre PC, on puisse lui dire quels messages sont non lus...
Après il faudra réfléchir au comment ne pas marquer les messages en "lu" si il se deconnecte
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 29 sept. 2006 à 14:15
Et puis quoi encore ?
Moi je fais des SELECT récupérant quelques centaines d'entrées en filtrant sur 4-5 champs et avec 3-4 jointures, dans des tables contenant plusieurs dizaines de milliers d'entrées (idem pour les tables de jointure), et c'est immédiat.
Alors je vois mal comment tu pourrais mettre mysql à genou avec 200 membres et 3000 messages, en faisant un select filtré comme celui-ci...