begin process at 2012 05 30 22:33:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

nouveaux messages par membre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

nouveaux messages par membre

vendredi 29 septembre 2006 à 11:07:11 | nouveaux messages par membre

adeliz

Membre Club
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.

Cordialement, Adeliz.
vendredi 29 septembre 2006 à 11:14:45 | Re : nouveaux messages par membre

coockiesch

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???"
vendredi 29 septembre 2006 à 11:42:51 | Re : nouveaux messages par membre

adeliz

Membre Club
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).

En tout cas merci quand même :)
vendredi 29 septembre 2006 à 12:07:02 | Re : nouveaux messages par membre

coockiesch

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???"
vendredi 29 septembre 2006 à 12:15:32 | Re : nouveaux messages par membre

malalam

Administrateur CodeS-SourceS
Hello,

je pige pas moi.
Si j'ai une table users avec
user_id et compagnie.
Une table messages
avec mess_id, user_id et compagnie

Et que dans ma table messages j'ai un champ 'mess_lu' qui est à 0 si le mec n'a pas lu, et passe à 1 si le mec lit son message...

Ca devient simple, non ??

SELECT mess_id, mess_sujet FROM messages WHERE user_id = $_SESSION['user_id'] AND mess_lu = 0

Ca fait pas un gros select.


vendredi 29 septembre 2006 à 13:14:15 | Re : nouveaux messages par membre

adeliz

Membre Club
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
vendredi 29 septembre 2006 à 14:15:09 | Re : nouveaux messages par membre

malalam

Administrateur CodeS-SourceS
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...
vendredi 29 septembre 2006 à 14:16:53 | Re : nouveaux messages par membre

malalam

Administrateur CodeS-SourceS
Sans jointure, qui plus est...
vendredi 29 septembre 2006 à 14:34:07 | Re : nouveaux messages par membre

adeliz

Membre Club
Autant pour moi alors
Et comment on fait une jointure alors ?
vendredi 29 septembre 2006 à 15:13:40 | Re : nouveaux messages par membre

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
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...)

1 2

Cette discussion est classée dans : base, donnée, site, messages, membre


Répondre à ce message

Sujets en rapport avec ce message

Selectionner une donnée dans une base de donnée .... [ par Benjamin G ] Salut,Je voudrais finir mon espace membres avec un module pour savoir qui est en ligne (invités/membres)...Donc quand c'est un membre qui est connecté Problème Base de Donnée MySQL [ par snakykyle ] Bonjour tout le monde, Voila, je veux créer un espace membre, le problème s'est que j'ai pas bien saisi comment une fois que le membre s'est identifié Accéder à une base de donnée distante [ par matlocker ] Bonjour à tous,Je suis débutant en php et je vais devoir réaliser un site. On me demande une chose simple c'est d'accéder à une base donée. J'ai vu qu Gallerie et base de donnée [ par Mackdo ] je voudrais créé une gallerie ou tout les utilisateur de mon site pourrait sidentifier sans se reenregistrer !www.jmusicfrance.com c'est mon site et j Petite base de donnée... [ par PsykotropyK ] Bonjour, j'ai quelque base en html, je sais a peu pres faire un site, etc... Par contre, j'ai plus de mal des qu'il faut mettre un peu 'd'interactivit pseudo admin [ par dragon26 ] voila j'ai achete un sript ptc tout s'est bien passé pour l'installation mais pour acceder  a la base de donnée du site il est indiqué :" Alors pour p Partager sa bdd pour plusieurs site ? [ par SimsFlorian ] Bonjour, ici c'est un appelle de détresse  :o Je compte créer un site internet, qui aura pour but de donner au webmasteur,des services sur leurs site. Base De Donnée [ par zeler59 ] Bonjour tous le monde, tout dabord je suis nouveau dans le forum et je remerci toutes les personnes qui nous aide. Je post car je voit que j'ai un pro Creer un base de donnée [ par dark_arzane ] Bonjour à tous!Je me suis lancé dans le PHP avec le site du zero, et j'en suis à la base de donnée.Et j'ai des questions asser bête:-comment creer une d'ou je peux accéder a la base de donnée de mon site [ par informaticienne1debutante ] salut,j'ai créée un site qui un en ligne déja.jé tout chargé la base de donnée mysql et les fichiers php de mon site.le prob cé ke j'ai un formulaire


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales