Affiche le rang d'un utilisateur en fonction de ses points [résolu]

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'aimerais à l'aide d'une requête afficher le rang de l'utilisateur en fonction de ses points gagnés par rapport aux autres utilisateurs.

Voici le code que j'ai commencé à rentrer :

<?php
 
$totalpoints
= db_query('SELECT MAX(max_points) FROM {userpoints_total} WHERE uid = :uid', array(":uid"=>$elements['#account']->uid))->fetchField();
 
print
$totalpoints;
 

?>

Ce code me permet d'afficher le total des points de l'utilisateur, mais j'aimerais afficher en plus le rang où se situe la personne. Par exemple si une personne détient le plus grand nombre de points, cela affichera : "Classement général : 1 / 80".

Le "80" représente ici le nombre total d'utilisateurs.

Merci d'avance pour votre aide !

Forum : 

Bon je crois avoir trouvé un début de solution en travaillant avec ce code :

<?php
 
$querystring
= db_select('userpoints_total')
->
fields('userpoints_total')
->
condition('max_points', 1400,'>')
->
execute()
->
rowCount();
 print
$querystring;
?>

cela m'affiche bien le nombre de membre qui ont plus de 1400pts, par contre pour calculer en fonction de l'uid, je ne trouve pas, j'ai tenté cela :

<?php
 
$querystring
= db_select('userpoints_total')
->
fields('userpoints_total')
->
condition('max_points', 'uid,'>')
->condition ('
uid', $elements['#account']->uid,'=')
->execute()
->
rowCount();
 print
$querystring;
?>

Mais cela m'affiche "1" pour chaque membre :s