Salut et désolé, j'ai pas fait grand chose hier soir, je vais donc essayer de te donner une requête sans pouvoir tester.
1 2 3 4
|
SELECT alliance, SUM(points)
FROM users
GROUP BY alliance; |
Le GROUP BY lui spécifie d'agréger les données par alliance.
En l'occurence, nous nous intéressons aux points et lui spécifions le type d'agrégation SUM qui fait la somme des points par alliance.
Je crois que c'est ce que tu recherche pour la première partie.
Il ya d'autres agrégations possibles : MIN, MAX, moyenne, etc...
Si ma requête n'est pas fonctionnelle (c'est fort possible), je pense que tu peux aller te renseigner sur le forum MySQL où tu trouveras toutes les compétences nécessaires pour atteindre ton but.
Comme nous avons été plusieurs à te le conseiller plus haut, je pense que tu dois automatiser ton code (factoriser, comme dit si bien Rakken) afin de générer toujours le même code, ce qui te permets une correction et une maintenance beaucoup plus efficace.
Ainsi, en deuxième partie, tu tireras avantage d'une requête unique :
SELECT * FROM alliances GROUP BY id_alliance
qui te permettra d'obtenir le résultat pour chaque id_alliance en une seule fois. Au niveau performances, cerise sur le gâteau, c'est carrément mieux. Le groupement demande un peu plus de temps machine, mais tu n'as plus à ouvrir plusieurs fois la même connexion, ce qui compense largement.
Enfin, pour la troisième partie, à savoir l'affichage html, tu dois aussi pouvoir trouver une boucle qui te génère tes lignes à la volée.
Bon courage, tiens nous au courant.
JM
Partager