requete compliqué jointure + count + groupe by

Mammouth du PHP | 804 Messages

09 févr. 2010, 16:58

Bonjour,

Je viens vous exposer mon problème, il s'agit de faire un classement en récupèrent des infos sur d'autre table jointe, le souci c'est que je dois grouper les résultats de certains champs et j'ai peur de ne pas mis prendre correctement.
j'aurai vraiment besoins d'aide car je ne vois vraiment pas mon erreur :?

ma requete
$result  = mysql_query("SELECT source_resultats.*, COUNT(source_resultats.rst_points) AS cumule, source_chiens.dog_ID, source_chiens.dog_nom, source_chiens.dog_pro 
FROM source_resultats 
LEFT JOIN source_chiens ON source_chiens.dog_nom = source_resultats.rst_chien 
GROUP BY source_resultats.rst_chien 
ORDER BY cumule ASC "); 

while($row = mysql_fetch_array($result)){
	$DB_cumule = $row['cumule']; // ca me retourne 1 pour chaque résultats ????
merci d'avance pour votre aide

Eléphant du PHP | 63 Messages

09 févr. 2010, 22:14

Déjà ce que tu pourrais faire c'est nous dire brièvement ce que ta requête doit faire, puis nous présenter tes modèles merise (par exemple ; à défaut le SQL des tables concernées).

Mammouth du PHP | 804 Messages

10 févr. 2010, 00:33

Je comprends ! Voici une brève explication de ma bdd 'source_resultats'

rst_points | rst_chien | rst_lieu
3 | toto | paris
5 | titi | paris
2 | toto | paris
1 | fifi | paris
2 | toto | paris
1 | fifi | Marseille

Je veux obtenir un classement avec cumul des points ' rst_points ' tout en groupant les même clés rst_chien

Exemple d'affichage que je veux obtenir

Classement | nom | total points
1 toto 7
2 titi 5
3 fifi 2

Une fois ca obtenu je souhaiterai venir greffer en jointure d'autres tables pour enrichir mon tableau avec d’autres informations.
merci de ton intérêt en espèrent avoir été plus claire

ViPHP
ViPHP | 5462 Messages

10 févr. 2010, 00:50

c'est pas COUNT c'est SUM qui faut faire

Mammouth du PHP | 804 Messages

10 févr. 2010, 01:24

requete actuelle
$result  = mysql_query("
SELECT rst_chien, rst_points, SUM(rst_points) AS points
FROM source_resultats AS a
GROUP BY rst_chien, rst_points
ORDER BY rst_points *1000 DESC
");
 
il semble que le classement soit bon mais le total de points n'est pas additionés

Mammouth du PHP | 804 Messages

10 févr. 2010, 01:56

merci stealth35, tu ma mis sur la bonne vois 8-) j'ai enfin réussi

VaN
Mammouth du PHP | 1107 Messages

12 févr. 2010, 15:27

rien en fait, pas vu qu'une réponse avait été donnée