Allô !
Alors allons-y dans l'ordre
Et pour illustrer mes requêtes, je prendrai les données suivantes:
pseudo: Roger
jeu: ABC
- Comment faire pour afficher le nombre de fois ou le membre est premier sur un jeu ? ou deuxième ? ou troisième ?
Tu dois réaliser une requête qui comptera le nombre d'enregistrements où le pseudo est égal à 'Roger', où le jeu est égal à 'ABC' et où le classement correspond à celui que tu désires obtenir (par exemple 1,2...)
Cela devrait donner une requête comme ceci:
1 2
| SELECT COUNT(pseudo) FROM score WHERE jeu = 'ABC'
AND pseudo = 'Roger' AND score = '1' |
Comment faire pour calculer le nombre total de point d'un membre ?
Avec un barème de ce type : 1ère place = 10 points, 2ème place = 9 points, 3ème place = 8 points...
Pour ceci je te propose une méthode, je ne crois pas qu'elle est la plus optimale, donc si quelqu'un peut en proposer une meilleure qu'il n'hésite pas , mais je t'expose la mienne quand même.
Tu utilises la requête précédente pour compter le nombre de fois où un joueur a terminé premier. Tu prends le résultat obtenu et tu le multiplies par le nombre de points pour cette position. Par exemple, si Roger a terminé en première position 8 fois pour le jeu ABC, et bien la requête te retournera 8, et tu multiplieras cette valeur par 10, pour obtenir 80. Tu répètes cette requête pour chaque position (deuxième, troisième...). Tu dois bien évidemment additionner tous les résultats à la fin pour obtenir le nombre de points total du joueur.
Comment faire pour afficher le classement général de tous les joueurs ?
Ici, une simple requête calculant la moyenne suffira je crois. Il te suffira de faire comme ceci:
SELECT AVG(score) FROM score
Si tu veux le classement général pour un joueur en particulier, tu n'as qu'à ajouter une clause WHERE qui spécifie pour quel joueur.
J'espère avoir bien compris ce que tu désirais réaliser. Si je n'ai pas été claire dans mes explications, n'hésite pas à me poser plus de questions !
Bonne chance !
Partager