par
Ryle » 17 sept. 2007, 17:16
Juste une petite correction dans ta requête, ce n'est pas parce que MySQL laisse mettre n'importe quoi dans une clause GROUP BY, qu'il n'y a pas de règles a respecter

Le group by doit regroupés tous les champs spécifiés dans le SELECT pour lequels aucune fonction de groupe n'a été appliqué :
$query_req = "SELECT SUM(poid) as genre, COUNT(genre) as nb_genre, login, genre, poid
FROM user, carnet
WHERE user.id = nb
GROUP BY login, genre, poid
ORDER BY genre DESC " . $limit_str;
Je me suis également permit de renommer ton "COUNT(genre)" en "nb_genre" au lieu de login pour éviter d'avoir deux fois l'index "login" en php et ne pas savoir ce qu'on va y trouver, et de sortir la variable de la chaine.
Juste une petite correction dans ta requête, ce n'est pas parce que MySQL laisse mettre n'importe quoi dans une clause GROUP BY, qu'il n'y a pas de règles a respecter :) Le group by doit regroupés tous les champs spécifiés dans le SELECT pour lequels aucune fonction de groupe n'a été appliqué :
[php]$query_req = "SELECT SUM(poid) as genre, COUNT(genre) as nb_genre, login, genre, poid
FROM user, carnet
WHERE user.id = nb
GROUP BY login, genre, poid
ORDER BY genre DESC " . $limit_str; [/php]
Je me suis également permit de renommer ton "COUNT(genre)" en "nb_genre" au lieu de login pour éviter d'avoir deux fois l'index "login" en php et ne pas savoir ce qu'on va y trouver, et de sortir la variable de la chaine.