Salut,
Le mieux pour la création d'un forum c'est d'ajouter un champs dans ta table "nb_topics" et "nb_messages" que tu incrémentes a chaque ajout ou suppression de topic/message.
Bonjour a tous,
Je viens vers vous aujourd'hui pour un petit soucis de jointure.
Je vous explique ; je crée un forum et pour chaque catégorie je voudrais récupérer le nombre de Sujets.
Dans la table forum_categories j'ai un champ id et dans la table forum_sujets j'ai un champ categorie_id .
J'ai essayais plusieurs code mais le dernier est :
Mais le résultat est le suivant :
A la ligne 'count(forum_sujets.id)' => string '3' Il me récupére 3 alors que je n'est que deux sujets liés a cette catégorie.
Pour étre simple ce que je voudrais est :
- Nom de la catégorie.
- Description de la catégorie.
- Nombre de sujets.
Mais tous ca avec une seul requete Sql ?
Merci a tous d'avance et bonne fin de journée.
NydalSinvio
(Ps : J'ai regardé sur le forum mais aucun des codes trouvés ne fonctionne).
7 réponses
Donc dans la table Categorie j'ajoute un champ nb_sujets et dans la table sujets j'ajoute un champ nb_posts que je change a chaque nouveau ajout / suppretion ? Mais ca va ne va rien changé pour la récupération du dernier message :/
Exacte, pour la récupération du dernier message tu as juste à rajouter un champs "last_message_id" :)
Un exemple de tables sql pour un forum : http://openclassrooms.com/courses/creer-son-forum-de-toutes-pieces/avant-tout-2#/id/r-1401481
C'est une bonne idée mais mes catégorie sont lister de la sorte :
Comment faire pour récupérer le dernier sujet de chaque catégorie .. C'est vite compliqué avec le Sql :p
Merci de ton lien mais les cours de OpenClassRoom c'est un vrai bordel est la a part faire une requete de la taille d'une page entiére et des while par ci par la je ne trouve pas la solution..
J'ai réussi :p
Voila le code utilisé :
En tous cas un grand merci de ton aide ! Bon fin de journée
Pour recuperer le dernier sujet :
Tu fais un max() sur ta cle primaire
GENRE :
SELECT max(id) FROM forum_sujets WHERE categorie_id = '$id'
si tu rajoutes des champs il faut que tu groupes
SELECT max(id),titre FROM forum_sujets WHERE categorie_id = '$id'
group by titre