Classement sql/php

Petit nouveau ! | 2 Messages

08 sept. 2013, 17:52

Bonjour à tous,

Je sollicite aujourd'hui votre aide, car j'ai du mal à créer un simple classement en php.

C'est étonnant de galérer sur si peu, je sais bien.. Mais au départ, j'avais ma requête dans la tête, puis je me suis rappelé l'organisation de ma base de donnée, ce qui à chamboulé mes plans :

Image

Grâce à cette table, j'aimerais faire un classement des 10 membres ayant le plus de badge (badge_id= code d'un badge) en passant par l'id de l'utilisateur et ensuite récupérer ses informations.

En gros il faudrait récupérer les dix userid ayant le plus d'entrées dans la table. Mais je bloque au niveau de la requête sql..

Je vous remercie d'avance.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 sept. 2013, 17:59

salut,


il te faut utiliser :
count() : pour compter les badges
group by pour grouper le calcul par utilisateur (donc référencé par leur id).

pour la limite cela dépend du sgbd que utilise mysql propose la clause limit, avec oracle utilise rownum etc etc.


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 2 Messages

08 sept. 2013, 18:21

Je viens de faire:
SELECT user_id,COUNT(*) FROM user_badges GROUP BY user_id ORDER BY COUNT(user_id) DESC LIMIT 0,20;
Et sa marche niquel, merci moogli :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 sept. 2013, 19:39

de rien, pense au bouton résolus (en haut a droite du sujet ;)

merci

@+
Il en faut peu pour être heureux ......