Probleme de tri PHP/MYSQL
Fermé
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
-
30 mars 2008 à 21:59
chantaussel Messages postés 137 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 9 juillet 2014 - 31 mars 2008 à 00:21
chantaussel Messages postés 137 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 9 juillet 2014 - 31 mars 2008 à 00:21
A voir également:
- Probleme de tri PHP/MYSQL
- Tri excel - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Logiciel de tri de photos - Guide
- En cours de traitement sur le site de tri local ✓ - Forum Réseaux sociaux
4 réponses
Bonjour,
Pourquoi ne pas faire un order by "votre champs à trié" ASC dans la requête SQL ?
Ainsi le résultat de ta requête sera trié dans l'ordre alphabétique.
par exemple :
$SQL = "SELECT * FROM bois WHERE latin LIKE '%$h%' OR francais LIKE '%$h%' OR anglais LIKE '%$h%' OR pays_fr LIKE '%$h%' OR pays_ang LIKE '%$h%' OR cont_fr LIKE '%$h%' OR cont_ang LIKE '%$h%' ORDER BY latin ASC";
1+
Pourquoi ne pas faire un order by "votre champs à trié" ASC dans la requête SQL ?
Ainsi le résultat de ta requête sera trié dans l'ordre alphabétique.
par exemple :
$SQL = "SELECT * FROM bois WHERE latin LIKE '%$h%' OR francais LIKE '%$h%' OR anglais LIKE '%$h%' OR pays_fr LIKE '%$h%' OR pays_ang LIKE '%$h%' OR cont_fr LIKE '%$h%' OR cont_ang LIKE '%$h%' ORDER BY latin ASC";
1+
chantaussel
Messages postés
137
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
9 juillet 2014
30
30 mars 2008 à 23:12
30 mars 2008 à 23:12
Il te suffit de rajouter un ORDER BY à la fin de ta sélection :
Je pense que ça devrait le faire!
Bon courage! ;)
edit : Le D a été plus rapide!
$SQL = "SELECT * FROM bois WHERE latin LIKE '%$h%' OR francais LIKE '%$h%' OR anglais LIKE '%$h%' OR pays_fr LIKE '%$h%' OR pays_ang LIKE '%$h%' OR cont_fr LIKE '%$h%' OR cont_ang LIKE '%$h%' ORDER BY latin";
Je pense que ça devrait le faire!
Bon courage! ;)
edit : Le D a été plus rapide!
chantaussel
Messages postés
137
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
9 juillet 2014
30
30 mars 2008 à 23:52
30 mars 2008 à 23:52
Je ne comprends pas vraiment ce que tu veux faire car j'ai du mal à visualiser ce qu'il y a dans ta bdd. Dis-nous un peu plus précisément comment elle est structurée (les différents champs et les entrées)
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 459
31 mars 2008 à 00:00
31 mars 2008 à 00:00
ok alors ma dase de données contient :
ID
les noms latins
les noms francais
les noms anglais
les pays anglais et francais
les continents anglais et francais
etc...
en gros c'est un inventaire d'essences de bois, sa provenance, son nom francais, son nom latin, son nom anglais, son continent et son pays.
si je tape dans la recherche le mot érable il me sort toute les entrées qui contient érable.
ce que j'aimerais :
si je tape érable et bien le résultat s'affiche et tous les noms francais sont en ordre
si je tape maple le résultat s'affiche et toules noms anglais sont en ordre
ID
les noms latins
les noms francais
les noms anglais
les pays anglais et francais
les continents anglais et francais
etc...
en gros c'est un inventaire d'essences de bois, sa provenance, son nom francais, son nom latin, son nom anglais, son continent et son pays.
si je tape dans la recherche le mot érable il me sort toute les entrées qui contient érable.
ce que j'aimerais :
si je tape érable et bien le résultat s'affiche et tous les noms francais sont en ordre
si je tape maple le résultat s'affiche et toules noms anglais sont en ordre
chantaussel
Messages postés
137
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
9 juillet 2014
30
31 mars 2008 à 00:21
31 mars 2008 à 00:21
Ok, je comprends... Mais la solution ne me vient pas tout de suite...
Il faudrait trouver un moyen qu'il te ressorte le nom du champ dans lequel il a trouvé la chaine de caractères en question, stocker le nom du champ dans une variable, puis se resservir de cette variable dans le ORDER BY. Ça doit être possible mais je sais pas trop comment!
Ya un problème qui me vient tout de suite : qu'est ce qui se passe si des noms d'essence se disent de la même façon dans plusieurs langues?
Et ce serait pas possible qu'au moment où tu tapes "érable" tu lui dise que c'est du français? Ça simplifierait grandement les choses!
J'y réfléchis et si je trouve quelque chose je t'en fais part!
Il faudrait trouver un moyen qu'il te ressorte le nom du champ dans lequel il a trouvé la chaine de caractères en question, stocker le nom du champ dans une variable, puis se resservir de cette variable dans le ORDER BY. Ça doit être possible mais je sais pas trop comment!
Ya un problème qui me vient tout de suite : qu'est ce qui se passe si des noms d'essence se disent de la même façon dans plusieurs langues?
Et ce serait pas possible qu'au moment où tu tapes "érable" tu lui dise que c'est du français? Ça simplifierait grandement les choses!
J'y réfléchis et si je trouve quelque chose je t'en fais part!
30 mars 2008 à 23:43
Oui de cette façon ça fonctionne
Mais je me demandais si je pouvais le faire autrement. Je m'explique et j'essaie d'être clair. Ma formule dit
cher dans la table bois où latin contient la recherche OU si francais contient la recherche et ainsi de suite
quand je mets un ORDER BY latin à la fin et bien tout les résultats sont affichée et les noms latins en ordre
ex si je recherche un nom latimn j'aimerais que les noms latins soient en ordre
et si je recherche un nom francais que les noms francais soient en ordre dans le résultat
et ainsi de suite.
j'ai essayé ceci mais avec erreur :