begin process at 2012 05 30 21:36:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Trucs et astuces

 > 

Forum, comment signaler les nouveaux sujets, messages


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

Forum, comment signaler les nouveaux sujets, messages

vendredi 18 novembre 2005 à 15:38:00 | Forum, comment signaler les nouveaux sujets, messages

b4d

Bonjour à tous,
J'ai créé un forum assez simple selon cette structure:

FORUM 1: - Sujet 1 : ~message 1
                     ~message 2
                     ~message 3
         - Sujet 2 : ~message 1
                     ~message 2
FORUM 2: - Sujet 1 : ~message 1
...

Voici à quoi ressemble les tables:
forum: id (int), titre (text), description (text)
sujet: id (int), idforum (int), sujet (text), description (text), pseudo (text), date (timestamp)
message: id (int), idsujet (int), idforum (int), pseudo (text), message (text), date (timestamp)

Remarque: Pour acceder au forum, il faut être membre...

Maintenant, j'aimerais bien améliorer mon forum et mettre une icone si c'est un nouveau sujet...
Seulement, je ne sais pas par où commencer...

J'avais pensé soit en comparant la date de la dernière connection à la date du dernier message du forum... Mais ça marche pour le forum mais pas pour les sujets ! Sauf si vous avez une idée...
Ou alors, j'avais pensé à créer une table avec l'utilisateur et la liste des sujets lu... Récuperer cette liste, la transformer en tableau et comparer au l'id du message... Mais ça peut marcher pour les sujets mais pas pour les forums... sauf si...

Donc, je viens demander conseil pour trier les messages lu des messages non lu en fonction de l'utilisateur !

Merci d'avance!
Yves

PS: j'espère avoir été assez clair!
vendredi 18 novembre 2005 à 16:04:31 | Re : Forum, comment signaler les nouveaux sujets, messages

malalam

Administrateur CodeS-SourceS
Hello,

Y a la solution simple, une nouvelle table :

sujets_lu
id_sujet, id_membre

Tu la remplis en conséquence quand un membre lit un sujet.
Quand tu affiches ton forum (avec ses sujets), pour ton membre, tu vas voir dans cette table si pour chaque id_sujet des sujets de ce forum, tu as la paire id_sujet/id_membre dans cette table. Si tu ne l'as pas, c'est un nouveau sujet et tu mets ton icone.

Au passage, revois tes conventions de nommage
. Ce que j'aime bien moi ;

forum: forum_id(int), forum_titre (text), forum_description (text)
sujet: sujet_id (int), forum_id(int), sujet_sujet (text), sujet_description (text), sujet_pseudo (text), sujet_date (timestamp)
message: message_id (int), sujet_id(int), forum_id(int), message_pseudo (text), message_message (text), message_date (timestamp)

par exemple.
Cela facilitera la lecture à terme, et la comprehension de ta structure.
Bref la grosse modif en fait : si tu fais référence à une clef étrangère (par exemple, idsujet dans la table message), cette clef doit avoir le même nom dans sa table d'origine. Sinon, pour les évolutions de mysql, ou si tu passes à une autre base, tu vas avoir des soucis...
vendredi 18 novembre 2005 à 16:26:46 | Re : Forum, comment signaler les nouveaux sujets, messages

b4d

D'accord, je vois ce que tu veux dire, mais dans ce cas là, je ne vois pas trop comment faire sur la page des forums... Comment récupérer les sujets lu alors que je n'ai pas encore de forum sélectionné et donc, pas de sujets à afficher?

C'est vrai que mes noms ne sont pas très expréssifs... Mais bon, je suis pas vraiment expert! J'ai commencé PHP en août de cette année et j'ai jamais lu un bouquin, j'apprend sur le tas! Donc, parfois je vois pas la solution (même si elle est simple) tout de suite !

Merci d'expliquer ta solution!

vendredi 18 novembre 2005 à 16:43:22 | Re : Forum, comment signaler les nouveaux sujets, messages

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Certes...bon ben suffit de faire l'inverse lol.

ce sera une table sujets_non_lus (plus grosse du coup, mais bon).

Et du coup pour les forums, il suffit de faire une jointure : pour chaque forum que tu affiches, tu prends son forum.id_forum, et tu vas voir dans la table sujets_non_lus, si tu trouves une paire id_membre/id_sujet où sujets_nons_lus.id_sujet = sujet.id_sujet ET forum.id_forum = sujet.id_forum .
Enfin faut tester parce qu'à 17h...et après une joçurnée à travailler sur mssql...je ne suis plus très frais ;-) Mais si tu piges le principe, tu trouveras la bonne requête.

En fait ça devrait marcher aussi avec sujets_lus...lol. Faut inverser aussi.

Je te relis : sur la page des forums, tu vas afficher les noms de tes forums, non? Si tu as les noms, tu as les id. Après, faut savoir ce qu'est une jointure...;-) Mais c'est pas dur à trouver. En français, une jointure c'est :

Ramène moi du pain si le pain est une baguette et que j'aime la baguette et que j'aime la boulangerie et que la boulangerie fait des baguettes.

En gros.





Cette discussion est classée dans : message, text, int, forum, sujet


Répondre à ce message

Sujets en rapport avec ce message

Forum nouveau sujet/message vue [ par sk8er_ouf ] Voila expliquer moi le principe comme dans phpbb qui permet à chaque visiteur de voir les nouveau sujet depuis leur derniere visite ? je penses prendr probleme creation de forum [ par ghyslain ] j'essais donc de faire un forum facon phpbb mais tout seul, j'arrive a afficher tout les message qui sont dans la base de donnée, maintenant je veux p création d'un forum [ par nagouza ] salemou 3alikomMr.et Mme developpeurs ,j'ai besoin de votre aide concernant mon projet sujet :créer un forum avec un page d'authentification Poster un text sur un mur Facebook [ par manup38 ] Bonjour, J'ai peur que le message ai déjà été posé mais je souhaiterai avoir un peu aide pour poster un message sur le mur facebook de quelqu'un. En Mise en forme d'une news, d'un message etc... [ par Elberton ] Bonjour, à tous.J'aurais besoin de quelques conseils.J'ai des sites web ou j'ai la possibilité d'inclure des news. mais j'ai également un forum que j' envoi de mail avec mail() [ par Oumbra ] Bonjour, Mon problème est simple : Je veux envoyer un mail après la validation d'un formulaire, tout fonctionne parfaitement sauf que mon serveur n'a classement de la liste des sujets dans un forum [ par mailliam ] Coucou tous! Moi j'ai un problème avec mon forum: j'ai une table (ici matable) qui contient le nom de l'auteur, le forum, le titre du sujet, le messa Problème sur l'upload d'image [ par ren999 ] bonjour a tous je suis en train de créer mon site et j'ai l'intention d'utiliser la méthode forum pour créer les pages web tout marche bien sauf l'upl ?Forum problème fopen() [ par arbilus ] Bonjours, j'ai un problème avec ce fameux forum (génial !: une page, tu la lance puis c'est bon) . Bref, à chaque nouveau sujet du forum j'ai ce mes comment faire pour réaliser un code source qui mêne à ajouter un nouveau sujet dans mon forum personnel [ par benamor1984 ] salut à tous ..............j'ai besoin d'aide comment faire pour pouvoir faire le notion d'ajout dde nouveau sujet dans mon forum avec un login


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,452 sec (3)

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