creer un top 10

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : creer un top 10

par Berzemus » 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: ).

par pingoo67 » 28 janv. 2008, 15:09

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

par Berzemus » 28 janv. 2008, 14:57

tout simplement:
echo $row['designation']." nombre:". $row['nombre']."<br / >";
:wink:

par pingoo67 » 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 / >";
				} 

par pingoo67 » 28 janv. 2008, 14:37

Super merci ca fonctionne...

Merci beaucoup bonne apres midi

par Berzemus » 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.

par pingoo67 » 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

par zeus » 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 ;)

par pingoo67 » 28 janv. 2008, 12:49

oui mais il me classe le tout simplement par ordre de reference et non par la pièce la plus courante à la moin courante

par Berzemus » 28 janv. 2008, 12:36

et la, en tant que tel, ton code il fonctionne ?

par pingoo67 » 28 janv. 2008, 11:37

 $requete = "SELECT ref,count(*) as nombre, designation FROM pieces GROUP BY ref limit 10 ";
				$select=mysql_query($requete);
				while($row= mysql_fetch_array($select)) { 
				echo $row['designation']."<br / >";
				}

par zeus » 28 janv. 2008, 11:29

PS : désolé de t'avoir redemandé la structure, j'ai raté le post dans lequel tu la mettait au départ :oops:

par Berzemus » 28 janv. 2008, 11:28

Oui ben c'est bien ce qui me semblait, la requête fonctionne comme un charme :ordi:
(testé sous phpmyadmin)

c'est dans ton script qu'il doit y avoir un souci. Tu peux nous mettre la partie de ton code qui traite la requête ?

par pingoo67 » 28 janv. 2008, 10:12

Code : Tout sélectionner

INSERT INTO `pieces` VALUES (4, '40013800003', 'SOUPAPE', '24/01/2008', '', ''); INSERT INTO `pieces` VALUES (5, '22090000003', 'Poste VDO', '24/01/2008', 'refuse', ''); INSERT INTO `pieces` VALUES (6, '21030000002', 'KLIMACENTER KR', '24/01/2008', 'retour_mag', ''); INSERT INTO `pieces` VALUES (7, '22090000015', 'CORDON MICRO', '24/01/2008', 'interne', ''); INSERT INTO `pieces` VALUES (8, '22091500066', 'MICRO BLAUPUNKT', '24/01/2008', 'interne', ''); INSERT INTO `pieces` VALUES (9, '22025200003', 'MOTEUR EG IC', '24/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (10, '41010000163', 'FAISCEAU SPECIFIQUE ISO', '24/01/2008', 'retour_mag', ''); INSERT INTO `pieces` VALUES (11, '22090000126', 'ANTENNE N-M TEMSA', '24/01/2008', 'retour_mag', ''); INSERT INTO `pieces` VALUES (12, '22090000133', 'MONITEUR PRESTIGE 12V', '24/01/2008', 'interne', ''); INSERT INTO `pieces` VALUES (13, '21025200107', 'RADIATEUR CHAUF AV SORTIE DROIT', '24/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (14, '20115200128', 'VERRIN VOLET DE SOUTE', '24/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (15, '22015200107', 'BP CUVETTE TOILETTE SAF/OPAL', '24/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (16, '41015202212', 'CLIP D26', '24/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (17, 'TY263188Y', 'CABLE CDE VITESSE', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (18, '41010000006', 'NECESSAIRE REPARATION CYL.PTE', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (19, '40033300001', 'ROBINET COMMANDE', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (20, '41010000006', 'NECESSAIRE REPARATION CYL.PTE', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (21, '20095200026', 'ACCOUDOIR D SAF HD', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (22, '51010000037', 'CONTACTEUR STOP SAF', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (23, '64159-10010-T2Y', 'ALLUME CIGARE', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (24, '51062700008', 'RELAIS INTERMITTENCE EG', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (25, '51060000009', 'RELAIS TYCO AVEC RESISTANCE', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (26, 'TY260191', 'ECROU', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (27, 'TY260190Y', 'VIS', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (28, '41010000006', 'NECESSAIRE REPARATION CYL.PTE', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (29, '41013801708', 'CAGE ROTULE', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (30, '21022300093', 'SONDE DE TEMPERAT EBERSP', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (31, '30103600045', 'VASE D EXPANSION', '25/01/2008', 'accepte', ''); INSERT INTO `pieces` VALUES (32, '51062700008', 'RELAIS INTERMITTENCE EG', '25/01/2008', 'accepte', 'temsa'); INSERT INTO `pieces` VALUES (33, '51013600261', 'CONTACTEUR DE DEMARRAGE', '25/01/2008', 'accepte', 'man'); INSERT INTO `pieces` VALUES (34, '20013600007', 'BARRILET ANTIVOL', '25/01/2008', 'accepte', 'man'); INSERT INTO `pieces` VALUES (35, '41013600616', 'VIS AUTO CASSANTE CONTACTEUR', '25/01/2008', 'accepte', 'man'); INSERT INTO `pieces` VALUES (36, '41013600616', 'VIS AUTO CASSANTE CONTACTEUR', '25/01/2008', 'accepte', 'man'); INSERT INTO `pieces` VALUES (37, '41010000006', 'NECESSAIRE REPARATION CYL.PTE', '25/01/2008', 'accepte', 'temsa'); INSERT INTO `pieces` VALUES (38, '41010000006', 'NECESSAIRE REPARATION CYL.PTE', '25/01/2008', 'accepte', 'temsa'); INSERT INTO `pieces` VALUES (39, '20025200025', 'PROFILE', '28/01/2008', 'accepte', 'temsa'); INSERT INTO `pieces` VALUES (40, '51065200072', 'RESISTANCE POUR UNITE DEGIVR', '28/01/2008', 'accepte', 'temsa'); INSERT INTO `pieces` VALUES (41, '41010000006', 'NECESSAIRE REPARATION CYL.PTE', '28/01/2008', 'accepte', 'temsa');

par zeus » 28 janv. 2008, 09:48

Tu n'aurais pas un jeu de données un peu plus complet ? Parce que faire un top 10 sur une seule ligne :lol: