Slectionner les id les plus grand de certain groupe, je ne sais pas si c'est cla

cs_romega Messages postés 32 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 20 avril 2008 - 19 avril 2008 à 13:43
cs_romega Messages postés 32 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 20 avril 2008 - 20 avril 2008 à 16:48
Salut a vous et encore merci pour vos aides.
Je suis en train de faire un forum. Le problème est de classer les sujet en fonction de du dernier message contenu dans le sujet et par ordre décroissant.
Pour cela j'ai deux tables, une table sujet qui contient le libellé du sujet, id du sujet etc... et une table message qui contient contient les messages, l'id du sujet auquel le message se raporte et un id pour chaque ligne de message.
J'ai fait la requette suivante mais ca ne marche pas bien vu que ca ne me sort pas le résultat dans le bonne ordre.

SELECT tablemessage.idsujet,tablemessage.idmessage,idmessage, tablesujet.idsujet AS idsuj, tablesujet.idsujet AS suje FROM tablesujet LEFT JOIN tablemessage ON tablesujet.idsujet=tablemessage.idsujet WHERE tablesujet.categorie='$idg' GROUP BY tablemessage.idsujet ORDER BY tablemessage.idmessage DESC

Cayégorie correspond a un "dossier" ou thème du forum, il s'agit aussi de listé les sujet d'un thème ou catégorie du forum.
Je ne sais pas si vous avez assez d'info pour m'aider, si ce n'est pas le cas j'en rajoute...
Merci a vous

6 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 avril 2008 à 14:10
Hello,

quel est l'ordre obtenu ?
0
cs_romega Messages postés 32 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 20 avril 2008
19 avril 2008 à 14:22
Dans les essais que j'ai fait il semble qu'il me les classe par ordre idsujet ou il classe dans le bonne ordre mais oublie le dernier message enregistré donc le résultat final est dans le désordre. Je ne sais pas dans quel ordre il classe ce ne sont que des suppositions. Voila le print_r d'une requete :
[0] => 38  [sujet] => 38  [1] => 60  [idmessage] => 60  [2] => 60  [3] => 38  [idsu] => 38  [4] => Retest de classement  [suje] => Retest de classement )
[0] => 37  [sujet] => 37  [1] => 59  [idmessage] => 59  [2] => 59  [3] => 37  [idsu] => 37  [4] => Test de classement  [suje] => Test de classement )
[0] => 34  [sujet] => 34  [1] => 53  [idmessage] => 53  [2] => 53  [3] => 34  [idsu] => 34  [4] => mieux tourner autour  [suje] => mieux tourner autour )
[0] => 33  [sujet] => 33  [1] => 52  [idmessage] => 52  [2] => 52  [3] => 33  [idsu] => 33  [4] => mieux tourner autour  [suje] => mieux tourner autour

En fait la ligne "test de classement" devrait être devant "restest de classement" car elle a un idmessage = 61 mais elle ne s'affiche pas, il y a deux message enregistré dans test de classement le 59 et le 61.
Est ce que c'est plus clair ?
0
cs_romega Messages postés 32 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 20 avril 2008
19 avril 2008 à 17:15
C'est que personne n'a de solution ou c'est moi qui m'exprime mal ? Parceque la je bloque grave.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 avril 2008 à 20:05
SELECT tablemessage.idsujet,tablemessage.idmessage,idmessage,
tablesujet.idsujet AS idsuj, tablesujet.idsujet AS suje FROM tablesujet
LEFT JOIN tablemessage ON tablesujet.idsujet=tablemessage.idsujet WHERE
tablesujet.categorie='$idg'  ORDER BY
tablemessage.idsujet DESC, tablemessage.idmessage DESC
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 avril 2008 à 10:37
Par ciriosité, pourquoi le group y ?
0
cs_romega Messages postés 32 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 20 avril 2008
20 avril 2008 à 16:48
En fait j'ai trouver la solution a force de faire des recherche sur le net. Avec MAX(idmessage) idmessage au debut et aussi une petite faute de synthaxe il ne dallait pas mettre GROUP BY tablemessage.idsujet mais simplement GROUP BY idsujet.
En fait le GROUP BY c'est pour rassembler tout les message d'un même sujet sinon j'ai autant de sujet en résultat su'il y a de message ce qui n'est pas bon.
Je n'ai pas testé ta solution mais merci de t'être penché sur le problème qui en plus doit pas être trés compréhensible a mon avis.
0