|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Jérôme Ingénieur développement logiciels Inscription : juillet 2007 Messages : 109 ![]() |
Bonjour à tous,
J'ai une table mysql qui stocke mes interventions. Avec un select et un limit je ne sélectionne que 20 lignes (les 20 interventions les plus récentes). Je souhaiterai rendre à l'utilisateur possible de trier ces 20 lignes sur tous le champ qu'il sélectionnera. Code sql :
Comment trier le résultat d'une requête. Une sous-requete? |
||
|
|
00
|
|
|
#2 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Ben avec ORDER BY que tu utilises déjà, non ?
Je n'ai peut-être pas compris ce que tu essaies de faire .. |
|
|
00
|
|
|
#3 | ||||
|
Membre du Club
![]() Jérôme Ingénieur développement logiciels Inscription : juillet 2007 Messages : 109 ![]() |
J'ai en partie trouvé après une recherche dans le manuel de mySQL
Code :
Avec la sous requete suivante seul 3 tris sur 8 créent une erreur SQL et ce ne sont pas les plus importants. Code :
|
||||
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
Ce que tu peux faire c'est ca : la premiere fois tu fais ta requete normale et tu affiches les 20 triées par date. Tu conserves alors dans une variable la liste des id de tes opérations. Comme ca a la seconde requete tu fais quelquechose du style Code sql :
SELECT * FROM matable WHERE id_intervention IN (12,15,16,...) ORDER BY critere_choisi |
|
|
|
00
|
|
|
#5 | ||
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Ben je pense que ça suffit :
Code sql :
|
||
|
|
00
|
|
|
#6 | |||
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
Le critère 2 n'est appliqué que lorsque les valeurs du critère 1 sont identiques! |
|||
|
|
00
|
|
|
#7 | |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 371 ![]() |
Si j'ai bien compris la demande....
J'utilise la meme chose dans l'un de mes scripts. En fait je fais un select en fonction d'un champ supplementaire que je remplie dans la BDD a chaque fois qu'une ligne se remplie, je trie les lignes que je veux afficher en rapprot de ce champ. Ensuite je fais un switch avec différents order by en fonction de champs récupérés dans l'url. Mais a la base, il faut qu'a chaque insert un champ se remplisse permettant de faire un trie initial, cela peut etre la date comme autre chose. Exemple : J'ai un formulaire qui insert des clients nom prenom adresses code postal, etc... et la date J'autorise des personnes a afficher les clients en fonction de la date (+ récent) et d'un substr du code postal. ensuite dnas l'affichage, le personne peut classer les demandes par nom (ordre alphabetique), par code postal, etc.....en passant la variable de trie dans l'url que je récupere avec un get et que je balance dans un switch terminant ma syntaxe du select par order by $var. et le tour est joué |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Jérôme Ingénieur développement logiciels Inscription : juillet 2007 Messages : 109 ![]() |
Je suis en train de tester avec les id dans un IN... C'était la pause café
|
|
|
00
|
|
|
#10 | ||||
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 371 ![]() |
un petit code :
Code :
Code :
|
||||
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Jérôme Ingénieur développement logiciels Inscription : juillet 2007 Messages : 109 ![]() |
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
C'est réglé pour la sous requete dans le IN. Je vais stocké dans une variable. |
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 371 ![]() |
et ce que je te propose....
|
|
|
00
|
|
|
#13 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
et la deuxieme fois t'as pas besoin des LIMIT vu que tu as déjà la liste des 20 ID Sinon tu fais ton tableau et tu le "serialize" dans un fichier comme ca quand on veut trier tu peux juste faire unserialize() |
|
|
|
00
|
|
|
#14 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
|
|
|
|
00
|
|
|
#15 | |||
|
Membre du Club
![]() Jérôme Ingénieur développement logiciels Inscription : juillet 2007 Messages : 109 ![]() |
Citation:
Voici la solution que j'ai trouvé où tout fonctionne comme je le souhaite. Code :
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com