Téléchargement
illégal
Posez votre question Signaler

[mysql][order by] une erreur? [Résolu]

amidal_ 6Messages postés 2 octobre 2005Date d'inscription - Dernière réponse le 11 avril 2008 à 12:06
Bonjour,

Mon but est de trier suivant l'attribut ordre tous les tuples de ma table à partir du moment ou ordre est différent de zéro. Puis de lui unir tous les tuples de cette même table qui sont égales à zéro mais trier par ordre décroissant de leur id.

Mon code:
$reponse=mysql_query("(select * from $table where ordre!=0 order by ordre) union (select * from $table where ordre=0 order by id desc)" );


Après je traite $reponse pour qu'il s 'affiche mais si les ordre different de zéro sont bien séparés de ceux qui sont égale à zéro rien d 'autre n'est ordonné.

Biensur si j'utilise les requetes independamment les unes des autres elles fonctionnent.

Quelqu'un peut m'aider? merci.
Lire la suite 

[mysql][order by] une erreur »

8 réponses
Réponse
+0
moins plus
Est-ce que les champs de tes deux tables sont au même nombre et du même type ?

http://dev.mysql.com/doc/refman/5.0/fr/union.html
Ajouter un commentaire
Réponse
+0
moins plus
oui etant donné qu'il s'agit de la même table.
Ajouter un commentaire
Réponse
+0
moins plus
Je suis pas sûr car j'utilise jamais le UNION, mais je me demande si l'on peut faire un ORDER BY différent pour chaque SELECT.

C'est quoi le le message d'erreur de mysql ?
Ajouter un commentaire
Réponse
+0
moins plus
En faite je n'ai pas de message d'erreur . Tout simplement aucun des tris ne s 'effectue et j ai bien les resultat de ma premiere requete puis de la seconde . J ai essayer d'utiliser les requetes séparément et elles fonctionnent . j'ai essayer de ne mettre qu'un order by et le tri qui reste ne marche pas .
Ajouter un commentaire
Réponse
+0
moins plus
J'avoue que je sais pas.

Cela fonctionnerait peut-être mieux en faisant une sous-requête.
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
Si tu fais :
SELECT * FROM $table ORDER BY ordre DESC, id DESC

Cela ne te-fournit-il pas les informations que tu recherches ?
A+, crabs
Ajouter un commentaire
Réponse
+0
moins plus
Aucunes solutions que vous me proposer me donne ce que je veux...
Néanmoins je vous remerci de m'avoir repondu.

Le probleme a ete resolu ...
Il faut ajouter des limit
$reponse=mysql_query("(select * from $table where ordre!=0 order by ordre limit 100) 
union (select * from $table where ordre=0 order by id desc limit 100)" );
neecolas - 11 avril 2008 à 12:06
Merci :)
Ajouter un commentaire
Ce document intitulé « [mysql][order by] une erreur? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?