ORDER BY qui ne fonctionne pas

Résolu
Psix Messages postés 105 Date d'inscription   Statut Membre Dernière intervention   -  
Psix Messages postés 105 Date d'inscription   Statut Membre Dernière intervention   -
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/

10 réponses

lecube Messages postés 304 Date d'inscription   Statut Membre Dernière intervention   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   Statut Membre Dernière intervention   5
 
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
le père
 
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   Statut Membre Dernière intervention   5
 
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
le père
 
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   Statut Membre Dernière intervention   5
 
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
le père
 
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   Statut Membre Dernière intervention   5
 
Ben à la place de $k (en tout cas merci pour toute ton aide)
0
le père
 
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   Statut Membre Dernière intervention   5
 
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