ORDER BY qui ne fonctionne pas

Résolu/Fermé
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 - 5 juil. 2009 à 07:57
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 - 8 juil. 2009 à 16:27
Bonjour, alors en fait mon problème est que dans mon code (http://pastebin.com/fd4f2b50) pour un menu déroulant que je fait avec un while pour mettre tout les animaux rentrées dans une table, je voudrait que les animaux soit dans l'ordre alphabétique dans le menu, j'ai donc mis :

$reponse = mysql_query("SELECT * FROM animaux ORDER BY animal");

afin de trier par ordre alphabétique. Cepandant l'ordre du menu ne change pas du tout ! (J'ai essayer ORDER BY animal DESC | et | ORDER BY animal ASC mais rien ne change ..) Par contre si je fait ORDER BY id, la le tri se fait bien et le menu se met dans l'ordre.

Ps : voici ma table :

https://imageshack.com/
A voir également:

10 réponses

lecube Messages postés 304 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 13 avril 2010 54
5 juil. 2009 à 08:54
Bonjour à toi,

Dans ta capture d'écran, le ORDER BY a bien fonctionne. les animaux sont bien classé par Ordre alpahabétique ?

Si dans phpMyadmin ( ou autre du meme style, desole je ne maitrise que celui-la ;-P), si en faisant ta commande, tu obtiens bien l'ordre voulu, il faut plutot se retourner plutot vers le code Javacript.
A+
Cube
0
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 5
5 juil. 2009 à 08:58
Salut, merci de m'avoir répondis si vite. Dans ma capture, c'est normal j'ai trier à l'affichage, mais le ORDER BY ne marche pas pour le menu. Et le plus bizar c'est que trier par l'id sa fonctionne pour le menu.
0
Bonjour

Le ORDER BY marche certainement, ça se saurait sinon. Ton problème doit être ailleurs.
Dans quel ordre les animaux apparaissent-ils dans ton menu ?
Comment est défini le champ animal (en particulier avec quelle collation)
Peut-on voir le code qui extrait ta liste d'animaux et qui fabrique le menu ?
0
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 5
5 juil. 2009 à 11:09
Bonjour, alors le code est ici : http://pastebin.com/fd4f2b50 (mis ds le premier poste^^) je l'ai fait en lien pour en pas encombrer le forum. Et l'ordre qui s'affiche est celui par id même si je met ORDER BY animal... Mon champs animal est en Varchar (j'ai aussi essayer TEXT mais cela n'a rien changé)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Il est de toi ce script ? ;)

La ligne 38 te range les éléments en fonction de l'id :

menu['.$donnees['id'].']=" '.$donnees['animal'].'";

Tu vois bien que tu ranges le nom d'un animal dans l'indice correspondant à son id. Donc quand tu affiches le menu ensuite, tu commences par l'id le plus faible, finalement tu re-classes par id.
il faudrait faire

menu['.$k.']=" '.$donnees['animal'].'";

et incrémenter $k à chaque tour de ton while. Il faudrait aussi mettre $k pour remplir les autres éléments du menu (ssmenuNom, ssmenuLien etc...). Je n'ai pas regardé en détail, il y a peut-être d'autres choses à modifier.
0
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 5
5 juil. 2009 à 12:59
J'ai trouvé ce script sur un site qui explique, je l'ai regardé même si je l'ai copier coller ^^. J'ai modifier les $donnees['id'] qui faut en $donnees['animal'] mais dans ce cas mon menu ne s'affiche plus du tout...

ssmenuNom['.$donnees['animal'].'][1] = "  Nourriture";
ssmenuLien['.$donnees['animal'].'][1] = "nourriture.php?animal='.$donnees['animal'].'";
ssmenuTarget['.$donnees['animal'].'][1] = "_top";
0
J'ai modifier les $donnees['id'] qui faut en $donnees['animal']
Pourquoi as-tu fait ça ?
0
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 5
6 juil. 2009 à 08:25
Ben à la place de $k (en tout cas merci pour toute ton aide)
0
Dans le message 5, je te demande de mettre des $k à la place de $donnees['id']. Normalement, ça suffit (à quelques détail près) à résoudre ton problème.
Mais au lieu de mettre des $k, tu me dis que dis que tu mets $donnees['animal'].
Je te demande "pourquoi", tu me réponds "à la place de ..." . Je ne t'avais pas demandé où !
Parlons-nous la même langue ?
0
Psix Messages postés 105 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 7 décembre 2010 5
8 juil. 2009 à 16:27
Bonjour, désolé de ne pas avoir répondu plus tôt je n'ai pas put ^^. Désolé si je n'avait pas bien compris ce que tu me disait, j'était un peu dans els choux ^^. Finalement j'ai réussi à trier par ordre alphabétique : https://pastebin.com/f59442a72 Merci pour toute ton aide, bonne fin de journée.
0