select id d'une catégorie qui a la valeur max [RESOLU]
Posté : 07 oct. 2011, 17:25
bonjour je bute sur une requête
je cherche à afficher un classement de photos d'avions les plus appréciés (nb de votes) dans leur catégorie (classe)
la page concernée.
j'obtiens pour une classe donnée le vote max, mais le numéro correspond à l'image de celle qui est classée 2ème ?!
exemple: au lieu de
7 Mirage2000 5
j'ai
101 mirage 2000 5
avec celui ci (que je n'ai pas compris), j'affiche un résultat mais incomplet; genre il manque la ligne " 230 transall 4"
je cherche à afficher un classement de photos d'avions les plus appréciés (nb de votes) dans leur catégorie (classe)
la page concernée.
Code : Tout sélectionner
table :
numero classe nb_votes
101 mirage 2000 3
230 transall 4
879 c-17 2
519 transall 1
45 C-17 3
7 Mirage2000 5
résultat escompté :
7 Mirage2000 5
230 transall 4
45 C-17 3$result = mysql_query("SELECT classe, numero, MAX(nb_votes) FROM table
GROUP BY classe ORDER BY MAX(nb_votes) DESC LIMIT 0,6") or die(mysql_error());
while ($row = mysql_fetch_array($result)){
echo ' '.$row['numero'].' '.$row['classe'].' '.$row['nb_votes'].' ';
avec cette requete, je suis pas loin de ce que j'aimeraisj'obtiens pour une classe donnée le vote max, mais le numéro correspond à l'image de celle qui est classée 2ème ?!
exemple: au lieu de
7 Mirage2000 5
j'ai
101 mirage 2000 5
avec celui ci (que je n'ai pas compris), j'affiche un résultat mais incomplet; genre il manque la ligne " 230 transall 4"
$result = mysql_query("SELECT t1.numero, t1.nb_votes, t1.classe FROM table t1
WHERE t1.nb_votes = (SELECT MAX(t2.nb_votes) FROM table t2 WHERE t2.classe = t1.classe)
GROUP BY classe ORDER BY MAX(nb_votes) DESC LIMIT 0,6") or die(mysql_error());
while ($row = mysql_fetch_assoc($result)){
echo ' '.$row["numero"].' '.$row["classe"].' '.$row["nb_votes"].' ';
merci de votre aide