par
ynx » 30 août 2016, 15:42
Pour connaitre le rang d'un utilisateur, on peut utiliser la requête sql suivante :
SELECT COUNT(*) + 1 AS rang FROM membre WHERE points > (SELECT points FROM membre WHERE id = ?)
-> où ? est l'identifiant de l'utilisateur
La sous-requête (SELECT points FROm membre WHERE id = ?) retourne le nombre de points de l'utilisateur spécifié (prenons par exemple 1000 points).
La requête SELECT * FROM membre WHERE points > 1000 retourne la liste des membres qui ont plus de 1000 points.
Il suffit alors de compter le nombre membres qui ont plus de 1000 points pour obtenir le rang de l'utilisateur (avec +1 pour ne pas commencer le premier rang à 0).
Il est nécessaire de vérifier que l'utilisateur existe avant d'utiliser cette requête, sinon celle-ci retournera le rang 1 pour un utilisateur inexistant.
Pour connaitre le rang d'un utilisateur, on peut utiliser la requête sql suivante :
[sql]SELECT COUNT(*) + 1 AS rang FROM membre WHERE points > (SELECT points FROM membre WHERE id = ?)[/sql]
-> où ? est l'identifiant de l'utilisateur
La sous-requête (SELECT points FROm membre WHERE id = ?) retourne le nombre de points de l'utilisateur spécifié (prenons par exemple 1000 points).
La requête SELECT * FROM membre WHERE points > 1000 retourne la liste des membres qui ont plus de 1000 points.
Il suffit alors de compter le nombre membres qui ont plus de 1000 points pour obtenir le rang de l'utilisateur (avec +1 pour ne pas commencer le premier rang à 0).
Il est nécessaire de vérifier que l'utilisateur existe avant d'utiliser cette requête, sinon celle-ci retournera le rang 1 pour un utilisateur inexistant.