Tri alphabétique groupé par lettre
6 messages
• Page 1 sur 1
- code
- WRInaute impliqué

- Messages: 648
- Inscription: 29 Juil 2005
Tri alphabétique groupé par lettre
Bonjour,
me voici confronté à un nouveau problème :
je souhaiterais que les résultats d'une requete mysql soient groupés par ordre alphabétique et par groupe de lettre.
Je suis certain qu'il est possible d'effectuer une opération plus simple que 26 fois la même requete qui sélectionne à chaque fois les mots qui commencent par a, puis b, puis c etc...
Mais je voudrais bien mettre en place une solution plus "propre"
En outre, je pense qu'il faudrait qu'il y ait un break pour afficher d'abord tous les mots commençant par a, puis reprendre pour b...
Quelqu'un a-t-il une idée
me voici confronté à un nouveau problème :
je souhaiterais que les résultats d'une requete mysql soient groupés par ordre alphabétique et par groupe de lettre.
Je suis certain qu'il est possible d'effectuer une opération plus simple que 26 fois la même requete qui sélectionne à chaque fois les mots qui commencent par a, puis b, puis c etc...
Mais je voudrais bien mettre en place une solution plus "propre"
En outre, je pense qu'il faudrait qu'il y ait un break pour afficher d'abord tous les mots commençant par a, puis reprendre pour b...
Quelqu'un a-t-il une idée
-

Malek-78 - Nouveau WRInaute

- Messages: 41
- Inscription: 8 Jan 2007
Re: Tri alphabétique groupé par lettre
code a écrit:ordre alphabétique et par groupe de lettre.
Je suis certain qu'il est possible d'effectuer une opération plus simple que 26 fois la même requete qui sélectionne à chaque fois les mots qui commencent par a, puis b, puis c etc...
Mais je voudrais bien mettre en place une solution plus "propre"
En outre, je pense qu'il faudrait qu'il y ait un break pour afficher d'abord tous les mots commençant par a, puis reprendre pour b...
Quelqu'un a-t-il une idée
Ma methode pourrait s'apparenter à du bricolage mais elle devrait marcher.
Tu effectues ta requete en appliquant un order by.
Ta liste de resultat est par consequent triée
exemple :
select nomColonne from table ORDER BY nomColonne ASC"
Par la suite lorsque tu affiches ta liste de resultat tu effectues un test en php pour savoir si la premiere lettre a été modifié
Si lettre identique à la precedente
-----afficher ligne
Sinon
-----appliquer separation
-----afficher ligne
- code
- WRInaute impliqué

- Messages: 648
- Inscription: 29 Juil 2005
Re: Tri alphabétique groupé par lettre
Malek-78 a écrit:
Par la suite lorsque tu affiches ta liste de resultat tu effectues un test en php pour savoir si la premiere lettre a été modifié
Si lettre identique à la precedente
-----afficher ligne
Sinon
-----appliquer separation
-----afficher ligne
C'est exactement ce à quoi j'avais pensé... Maintenant je bloque sur comment effectué ce test en php
-

Malek-78 - Nouveau WRInaute

- Messages: 41
- Inscription: 8 Jan 2007
Re: Tri alphabétique groupé par lettre
code a écrit:C'est exactement ce à quoi j'avais pensé... Maintenant je bloque sur comment effectué ce test en php
Utilise la methode substr() de php.
Tu trouveras ton bonheur ici:
http://www.manuelphp.com/php/function.substr.php
Cette methode te permettra de recuperer un "morceau" d'une chaine de characteres.
L'algo donnerait à peu pret ca :
$requete = mysql_query ("SELECT nomColonne FROM table ORDER BY nomColonne ");
//variable permettant de stocker la premiere lettre de la colonne "nomColonne"
$lettre_tampon = -1;
//En bcle sur les resultats
while ($res = mysql_fetch_object($requete))
{
$lettre_tester= substr($res->nomColonne , 0, 1);
//lettre precedente differente de la lettre suivante
if ($lettre_tester!= $lettre_tampon)
{
appliquer separation
afficher ligne
// Sauvegarde de la nouvelle lettre
$lettre_tampon= $lettre_tester;
} else{
afficher ligne
}
J'ai pas testé le resultat mais cela devrait etre correcte.
Il est à noter qu'avec cet algo, tu appliqueras tjs une separation avant le premier bloc car la valeur tampon est initialiser par defaut à -1.
- code
- WRInaute impliqué

- Messages: 648
- Inscription: 29 Juil 2005
Je te remercie : c'est exactement ce que je cherchais. ça marche impeccable. Il faut juste que je vois pourquoi il me trouve un "7" comme première lettre avec aucun résultat alors qu'il devrait y en avoir un (et c'est peut-être ça le problème justement, c'est qu'il y en a seulement un dans la table)
6 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Barre de navigation alphabétique
- Importance de l´ordre alphabétique ?
- ordre alphabetique repertoire question
- trie alphabetique russe mysql / php
- mettre les images de mon script par ordre alphabetique
- Classer les billet dotclear par ordre alphabétique
- redirection 301 sur une page 'index alphabétique'
Consultez la description détaillée des produits ou services de Google suivants : Google Groups
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
