ORDER BY ne marche pas

Résolu/Fermé
Balou l'ours roux Messages postés 86 Date d'inscription mercredi 15 mai 2013 Statut Membre Dernière intervention 17 novembre 2013 - 16 nov. 2013 à 12:17
Balou l'ours roux Messages postés 86 Date d'inscription mercredi 15 mai 2013 Statut Membre Dernière intervention 17 novembre 2013 - 16 nov. 2013 à 12:26
Bonjour,

j'ai dans ma base de données une table contenant une quantité d'article vendu, je voudrais afficher les références les plus vendus, mais lorsqu'un article est vendu 80 fois, il apparait en dessous d'un article vendu 9 fois. Mon code :
<?php

$connect = mysql_connect('localhost','root','');
mysql_select_db('fashion');
$top_query= mysql_query("SELECT * FROM stock ORDER BY Quantite_vendu DESC LIMIT 5");
$top_rows = mysql_num_rows($top_query);
while($top = mysql_fetch_array($top_query)){
echo $top['Ref'].'<br/>';
}

2 réponses

jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 39
16 nov. 2013 à 12:23
bonjour,

la requête s'exécutant correctement je parierais sur le fait que le champs Quantite_vendu dans ta base de données n'est pas de type numérique.

De ce fait, mysql trie bien tes données mais par ordre alphabétique (9->80) et non numérique (80->9).

il faudrait vérifier dans ta table stock si le type est bien numérique INT( ... ) et non varchar(...) par exemple.

Cordialement,
1
Balou l'ours roux Messages postés 86 Date d'inscription mercredi 15 mai 2013 Statut Membre Dernière intervention 17 novembre 2013 12
16 nov. 2013 à 12:26
Bonjour,

merci de cette réponse rapide! c'était effectivement ça le problème, merci beaucoup ! :)
0