Tri alphabétique groupé par lettre

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

code
WRInaute passionné
WRInaute passionné
 
Messages: 648
Inscription: Ven Juil 29, 2005 14:25

Tri alphabétique groupé par lettre

Message le Ven Fév 02, 2007 17:10

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


Malek-78
Nouveau WRInaute
 
Messages: 41
Inscription: Lun Jan 08, 2007 16:51

Re: Tri alphabétique groupé par lettre

Message le Ven Fév 02, 2007 18:30

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 passionné
WRInaute passionné
 
Messages: 648
Inscription: Ven Juil 29, 2005 14:25

Re: Tri alphabétique groupé par lettre

Message le Ven Fév 02, 2007 20:12

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 :lol:


Malek-78
Nouveau WRInaute
 
Messages: 41
Inscription: Lun Jan 08, 2007 16:51

Re: Tri alphabétique groupé par lettre

Message le Ven Fév 02, 2007 21:59

code a écrit:C'est exactement ce à quoi j'avais pensé... Maintenant je bloque sur comment effectué ce test en php :lol:


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 passionné
WRInaute passionné
 
Messages: 648
Inscription: Ven Juil 29, 2005 14:25

Message le Sam Fév 03, 2007 17:27

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)

code
WRInaute passionné
WRInaute passionné
 
Messages: 648
Inscription: Ven Juil 29, 2005 14:25

Message le Sam Fév 03, 2007 17:29

C'est bon c'est réglé, je vois pas ce qui a coincé mais bon tout est impeccable


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités