creer un top 10

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 janv. 2008, 13:02

le count(*) de ta requête te retourne le nombre de fois que chaque référence est présente dans ta table.
Pour trier par ce nombre de fois que chaque référence apparait, il te suffit donc de faire un ORDER BY sur cette clause ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

pingoo67
Invité n'ayant pas de compte PHPfrance

28 janv. 2008, 14:27

C'est ce que j'avais deja essayé mais ca me donne une erreur :
SELECT ref,count(*) as nombre, designation FROM pieces order by ref desc
Erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\garantie\index.php on line 119

ViPHP
ViPHP | 4039 Messages

28 janv. 2008, 14:32

et de le limiter à 10:

Code : Tout sélectionner

SELECT ref, count( * ) AS nombre, designation FROM pieces GROUP BY ref ORDER BY nombre DESC LIMIT 10
Au temps pour moi, il me semblait qu'on ne pouvait trier un aggrégat, : en fait on ne peut pas trier un tableau groupé sur une valeur qui n'est pas dans le select. Donc ma requête (bien que fonctionelle, hein :oops: ) sent un peu trop l'usine à gaz.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

pingoo67
Invité n'ayant pas de compte PHPfrance

28 janv. 2008, 14:37

Super merci ca fonctionne...

Merci beaucoup bonne apres midi

pingoo67
Invité n'ayant pas de compte PHPfrance

28 janv. 2008, 14:40

Une dernière question, comment extraire le nombre (count) afin de l'afficher deriere la designation :
$requete = "SELECT ref, count( * ) AS nombre, designation FROM pieces GROUP BY ref ORDER BY nombre DESC LIMIT 10 ";
				$select=mysql_query($requete);
				while($row= mysql_fetch_array($select)) { 
				echo $row['designation']."".NOMBRE."<br / >";
				} 

ViPHP
ViPHP | 4039 Messages

28 janv. 2008, 14:57

tout simplement:
echo $row['designation']." nombre:". $row['nombre']."<br / >";
:wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

pingoo67
Invité n'ayant pas de compte PHPfrance

28 janv. 2008, 15:09

Ok super merci... je comprend pas pourquoi je l'ais pas fai tout de suite....

ViPHP
ViPHP | 4039 Messages

28 janv. 2008, 15:34

content de t'avoir aidé.

Pense ajouter "résolu" au titre du sujet (doit y avoir un bouton au dessus (pile en dessous du logo phpfrance) qui fait justement ça :wink: ).
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.