Probleme à l'affichage d'une requete

Probleme à l'affichage d'une requete - PHP - Programmation

Marsh Posté le 19-03-2004 à 15:38:16    

Bonjour tlm,
 
je fais une FAQ, et dans une table g récupéré l'ensemble des rubriques contenant chacune 1 à N messages, pour pouvoir les afficher de facon triée.
Mon SELECT est correct je pense, ca donne:

<? $sql="SELECT J.sectionID, J.msgID, sectionNom, msgTitre FROM Joint J JOIN Section S ON J.sectionID=S.sectionID JOIN Message M ON J.msgID=M.msgID ORDER BY J.sectionID"; ?>


Le problème, c que je ne connais pas le moyen d'afficher "tous les messages pour une même rubrique" en php... [:airforceone]  
 
MERCI D'AVANCE

Reply

Marsh Posté le 19-03-2004 à 15:38:16   

Reply

Marsh Posté le 19-03-2004 à 15:49:57    

avec la requete que tu as donnée tu as tous les messages de toutes les rubriques
 
donc si tu veux les afficher par rubrique ensuite, tu parcoures le résultat de la requete et tu mets les résultats dans un tableau  :
 

Code :
  1. <?php
  2. $sql="SELECT J.sectionID, J.msgID, sectionNom, msgTitre FROM Joint J JOIN Section S ON J.sectionID=S.sectionID JOIN Message M ON J.msgID=M.msgID ORDER BY J.sectionID";
  3. $result = mysql_query($sql); //tester le résultat
  4. while( $row = mysql_fetch_object($result) ) {
  5.     $messages[$row->sectionID][]['msgID'] = $row->msgID;
  6.     $messages[$row->sectionID][]['sectionNom'] = $row->sectionNom;
  7.     $messages[$row->sectionID][]['msgTitre'] = $row->Titre;
  8. }
  9. ?>


Message édité par ratibus le 19-03-2004 à 15:50:13
Reply

Marsh Posté le 19-03-2004 à 15:52:44    

sinon tu mets un where à ta requete ...

Reply

Marsh Posté le 19-03-2004 à 15:56:40    

tout dépend s'il veut afficher toutes les rubriques ou une seule

Reply

Marsh Posté le 19-03-2004 à 15:59:15    

je veux afficher tous les messages contenus dans toutes les rubriques... le WHERE passera pas ici
Par contre, n'y a-t-il pas une solution - "lourde" que de stocker tous les enregistrements résultats de ma requete (meme si elle reste parfaitement fiable) :??:


Message édité par lkolrn le 19-03-2004 à 16:00:34
Reply

Marsh Posté le 19-03-2004 à 16:01:05    

donc une solution est celle que je t'ai proposé :)

Reply

Marsh Posté le 19-03-2004 à 16:04:06    

bin je vois pas comment on pourrait avoir "tous les messages contenus dans toutes les rubriques" et en même temps avoir "tous les messages pour une même rubrique" sans tout stocker quelque part... donc la solution de ratibus!!!

Reply

Marsh Posté le 19-03-2004 à 16:09:42    

anapajari a écrit :

bin je vois pas comment on pourrait avoir "tous les messages contenus dans toutes les rubriques" et en même temps avoir "tous les messages pour une même rubrique" sans tout stocker quelque part... donc la solution de ratibus!!!
 

merci, merci  :D

Reply

Marsh Posté le 19-03-2004 à 16:35:58    

bah on pourrait éventuellement requeter tous les IDsection, puis pour chacun d'entre eux requeter tous les messages...
 
quand je parlais d'une solution pas trop "lourde", j'evoquais seulement le fait que stocker tous les enregistrements dans un tableau est ptet + fastidieux que d'afficher 2 requetes imbriquées dans du code [:airforceone]
Ca donnerai

SELECTION {sectionID}
POUR CHAQUE sectionID
affiche sectionID
SELECTION {messageID}
POUR CHAQUE messageID
affiche messageID


Alors :??: :D


Message édité par lkolrn le 19-03-2004 à 16:37:54
Reply

Marsh Posté le 19-03-2004 à 16:40:29    

bin ça revient à mettre un where tu noteras bien :o

Reply

Marsh Posté le 19-03-2004 à 16:40:29   

Reply

Marsh Posté le 19-03-2004 à 16:44:40    

ouaip, mais ca rajoute une clause WHERE pour la 2eme requete dans ce cas


Message édité par lkolrn le 19-03-2004 à 16:45:02
Reply

Marsh Posté le 19-03-2004 à 16:50:46    

oui mais faut essayer de minimiser le nombre de requete à la base en général  
 
Or avec ta méthode (qui marche), tu fais : (nb section)+1 requetes sur la base

Reply

Marsh Posté le 19-03-2004 à 16:56:11    

c bien ca ratibus!
Voila, tu as compris je crois le sens profond de ma question[:aras qui rit]  
donc il est préféreable de se limiter en requetes vers la base plutot qu'en memoire pour le serveur, c noté!
 
mici bien :jap:


Message édité par lkolrn le 19-03-2004 à 16:57:34
Reply

Marsh Posté le 19-03-2004 à 17:10:26    

Faut déchiffrer les questions :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed