Rechercher : dans
Par :

ORDER BY qui ne fonctionne pas

Dernière réponse le 8 jui 2009 à 16:27:55 Psix, le 5 jui 2009 à 07:57:49 
 Signaler ce message aux modérateurs

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 :

http://img129.imageshack.us/i/111r.jpg/

Configuration: Windows XP
Edition familiale
Version 2002

Meilleures réponses pour « ORDER BY qui ne fonctionne pas » dans :
PC ou ordinateur lent / Windows très lent au démarrage VoirSi l'ordinateur met un temps très long à démarrer, le ralentissement peut provenir d'une des causes suivantes : L'ordinateur ne possède pas assez de mémoire vive : Ajouter de la mémoire Des programmes inutiles sont chargés en mémoire au...
SQL - Tri VoirTri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou...
Le moniteur ou écran d'ordinateur VoirIntroduction aux écrans d'ordinateur On appelle écran (ou moniteur) le périphérique d'affichage de l'ordinateur. On distingue habituellement deux familles d'écrans : Les écrans à tube cathodique (notés CRT pour Cathod Ray Tube), équipant la...

1

lecube, le 5 jui 2009 à 08:54:43

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

Répondre à lecube

2

Psix, le 5 jui 2009 à 08:58:23

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.

Répondre à Psix

3

le père, le 5 jui 2009 à 11:06:17

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 ?

Répondre à le père

4

Psix, le 5 jui 2009 à 11:09:53

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é)

Répondre à Psix

5

le père, le 5 jui 2009 à 11:23:30

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.

Répondre à le père

6

Psix, le 5 jui 2009 à 12:59:08

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";

Répondre à Psix

7

le père, le 5 jui 2009 à 21:20:41

J'ai modifier les $donnees['id'] qui faut en $donnees['animal']
Pourquoi as-tu fait ça ?

Répondre à le père

8

Psix, le 6 jui 2009 à 08:25:25

Ben à la place de $k (en tout cas merci pour toute ton aide)

Répondre à Psix

9

le père, le 6 jui 2009 à 09:07:39

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 ?

Répondre à le père

10

 Psix, le 8 jui 2009 à 16:27:55

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 : http://pastebin.com/f59442a72 Merci pour toute ton aide, bonne fin de journée.

Répondre à Psix