PHP SQL Order By et tri alphabétique

Eléphant du PHP | 428 Messages

10 mars 2010, 16:45

Bonjour,

Pour filtrer des données d'un table, j'utilise une requête avec un clause "ORDER BY nomduchamp ASC (ou DESC)" et je me rend compte que le résultat trié ne renvoie pas un classement par ordre alphabétique "stricte".

En effet, dans ma table si j'ai les enregistrements suivants :
- Arlon - technique
- Arlon - LED
- Arlon - Gérant
- Arlon - Prod

Et que je trie ces données par une requête "ORDER BY nom ASC", j'obtiens le résultat suivant :

1. Arlon - Prod
2. Arlon - Gérant
3. Arlon - LED
4. Arlon - Technique

Vous remarquerez donc que le classement est croissant mais PAS par odre alphabétique. En effet, logiquement le tri devrait être le suivant :

1. Arlon - Gérant
2. Arlon - LED
3. Arlon - Prod
4. Arlon - Technique


Avez-vous déjà rencontré ce type de problème et pouvez-vous me fournir une piste ou l'autre pour pouvoir filtrer mes données par ordre alphabétique croissant ?

Merci,
raph

Eléphant du PHP | 86 Messages

10 mars 2010, 17:04

Salut,

Tu peux stocker le résultat de ta requête dans un tableau et utiliser la fonction sort.
Un exemple sera plus parlant :
$tab = array("Arlon - Prod","Arlon - Gérant","Arlon - LED","Arlon - Technique");
sort ($tab);
for($i = 0; $i < count($tab); $i++) {
  echo $tab[$i]."<br />";
}

ViPHP
ViPHP | 5462 Messages

10 mars 2010, 17:08

chez moi ca marche, ta quel version de mysql et ton interclassement c'est quoi ?

Mammouth du PHP | 985 Messages

10 mars 2010, 17:09

Peux tu montrer ta requête en totalité ainsi que la constitution de ta ou tes tables?
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 428 Messages

10 mars 2010, 17:42

Salut !

C'est ok maintenant ça marche ... en effet j'utilise en plus de ma requete de filtrage un requete principale pour la pagination et j'avais omis de mettre un order by dan la pagination.

Merci pour vos réponses,
raph ;)