MagicBuzz | J'imagine que "score" ne contient pas un score, mais la position sur le podium (c'est à dire qu'on se fout que le joueur ait fait 84350 points à Super Mario, l'important c'est qu'il a le 3° meilleur score, et donc qu'on stocke 3)
Car si c'est pas ça, déjà je vois pas comment, sans notion de tournois, tu peux comparer les scores pour déduire si le joueur est premier ou second ( )
Ensuite, astuce simple pour compter des valeurs définies dans une table : un SUM() sur un DECODE() -pas de chance pour toi, en MySQL DECODE() n'existe pas, je te laisse te débrouiller tout seul avec un CASE à la place)
Code :
SELECT pseudo, sum(decode(score, 1, 1, 0)) premier, sum(decode(score, 2, 1, 0)) second, sum(decode(score, 3, 1, 0)) troisieme, sum(decode(score, 1, 10, 2, 5, 3, 1, 0)) points FROM score WHERE jeu = :jeu GROUP BY pseudo ORDER BY points DESC
|
J'ai pris des libertées avec ton barème, je préfère 1° = 10 points, 2° = 5 points, 3° = 1 point, + = 0 points... C'est un peu plis fair play pour les joueurs qui jouent peu mais qui explosent les autres à chaque match. |