|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() |
Bonjour, je viens de commencer à coder en php avec une bdd (ça peut paraître bizarre mais ça fait trois ans que je suis avec des fichiers) et je suis entrain d'essayer de faire un forum simple mais j'ai un petit problème pour trouver le dernier message d'un forum :
J'ai trois tables : - catégories - forums - topics - Posts pour chaque table, parmi les autres, il y a un champ "id_up" (qui change selon la table : id_topic, id_forum, id_cat) Il correspond à l'ID de "son parent". Ex: le forum 1 qui a l'ID 34 contient un topic d'ID 12 => dans le table du topic on trouve : ID = 12 id_forum = 34 Alors pour trouver le dernier message d'un topic aucun problème : "SELECT * FROM forum_posts WHERE topic_id = '12' ORDER BY time DESC LIMIT 1" Mais pour trouver le dernier message d'un forum à part envisager de mettre tous les topics et tous les posts dans un tableau et de faire une boucle pour trouver tu s posts du forum, je ne vois pas de manière plus simple. Merci |
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : novembre 2006 Messages : 135 ![]() |
Si tu as bien construit ta base, normallement le dernier post serait celui avec l id le plus grand non?
Sinon tu peux chopper le dernier id inserer dans post : Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() |
ok, mais le truc c'est que juste avec l'ensemble des posts je ne sais pas dire à quel forum ils appartiennent, je connais juste leur topic.. Je devrais faire un intermédiaire..
|
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : novembre 2006 Messages : 135 ![]() |
Oui tu peux rajouter une jointure pour trouver le numero du forum
|
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() |
Super tu saurais me donner la base de la requête parce que je débute en sql
|
|
|
00
|
|
|
#6 | |
|
Membre habitué
![]() Inscription : novembre 2006 Messages : 135 ![]() |
Citation:
C quoi la definition de tes bases? |
|
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() |
C'est un petit forum :
Code SQL :
|
||
|
|
00
|
|
|
#8 | ||
|
Membre habitué
![]() Inscription : novembre 2006 Messages : 135 ![]() |
Je verrais bien un select :
Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() |
Merci, à quoi correspond le p et le t ?
|
|
|
00
|
|
|
#10 | |
|
Membre habitué
![]() Inscription : novembre 2006 Messages : 135 ![]() |
Citation:
|
|
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() |
Ok, merci j'essaye cela.
|
|
|
00
|
|
|
#12 | ||
|
Membre régulier
![]() |
Alors voilà le code qui affiche les forums et les catégories :
Code :
|
||
|
|
00
|
|
|
#13 |
|
Membre habitué
![]() Inscription : novembre 2006 Messages : 135 ![]() |
Fais un echo de ton SQL et test le dans phpmyadmin et regarde ce que ca donne.
|
|
|
00
|
|
|
#14 | |
|
Membre régulier
![]() |
ok, j'ai trouvé c'était le "s" qui manquait aux noms de tables mais à présent j'ai :
Citation:
|
|
|
|
00
|
|
|
#15 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Que le champ id est commun à au moins deux tables, auquel cas vous devez préfixer le nom de ce champ par la table (ou son alias) concernée afin de lever cette ambiguïté, un petit exemple :
Code :
SELECT p.id, p.nom FROM produits AS p, categories AS c WHERE p.cat_id = c.id; |
|
|
00
|
|
|
#16 |
|
Membre régulier
![]() |
Logique,
Merci pour votre aide ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com