IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Tri alphanumérique en UTF-8


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 262
    Points : 329
    Points
    329
    Par défaut [Système] Tri alphanumérique en UTF-8
    Bonjour à tous,

    J'ai un petit problème de tri dont je n'arrive pas à trouver de solution.

    Un script PHP (en utf8), une base de donnée MySQL (base, interclassement et champ en utf8_unicode_ci)

    Lorsque je fais une requête pour afficher les données dans l'ordre croissant (même résultat, mais à l'inverse pour l'ordre décroissant), voici le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    (6) 1
    (11) 1,0
    (10) 1.0
    (8) 10
    (7) 2
    (9) 9
    (1) a
    (4) æ
    (2) o
    (5) œ
    (3) z
    Les numéros entre parenthèses sont les numéros d'entrée dans la base.

    Comme vous pouvez le voir, le chiffre 10 est avant le chiffre 2... C'est mon problème !

    Avez vous des solutions à me suggérez ?

    Merci beaucoup !

  2. #2
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Points : 26
    Points
    26
    Par défaut
    Je pense que tu devrais trier les numéros d'entrée par ordre croissant (ou décroissant) au lieu de trier les données.

  3. #3
    Membre averti
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 262
    Points : 329
    Points
    329
    Par défaut
    Salut Zobsystem,

    Cela ne servirait à rien, imagine que le champs concerne par exemple des identifiants et que je veux en faire une liste ordonnée, je dois donc avoir les identifiants commençant par des chiffres en premier (dans l'ordre) puis ensuite les lettres (dans l'ordre aussi)

    Il doit exister une solution, il y a des solutions à tout en PHP, mais là je bute !

    A bientôt...

  4. #4
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 49
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Le résultat de ton trie est correcte.
    Ton champ est de type texte alors... il est trié comme un texte.

    A moins de faire un second tri en php sur le resultat de ta requete, je ne vois pas de solution.

    ++

  5. #5
    Membre averti
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 262
    Points : 329
    Points
    329
    Par défaut
    Salut Snowboarder69,

    J'avais justement un peu peur de ce genre de réponse :-)

    Je pensais que PHP avait une fonction de tri en natif pour ce genre de chose, mais apparemment il n'y a pas mieux que de faire une fonction supplémentaire pour faire un tri logique sur de l'alphanumérique...

    A bientôt et merci.

  6. #6
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    C'est effectivement un tri alphabétique qui est appliqué et non un tri numérique donc le résultat est tout à fait normal, sauf que PHP dispose bel et bien d'une fonction permettant d'appliquer un tri de type "numérique" sur du texte.

    C'est natsort http://be.php.net/natsort

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [V6] problème de tri alphanumérique
    Par briolins dans le forum Deski
    Réponses: 7
    Dernier message: 04/11/2009, 15h57
  2. Tri alphanumérique sql
    Par eddyrigotti dans le forum SQL
    Réponses: 3
    Dernier message: 22/10/2009, 10h20
  3. Réponses: 1
    Dernier message: 22/06/2007, 12h48
  4. [Système] Tri à l'intérieur d'une classe
    Par FrankOVD dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2006, 22h54
  5. Réponses: 5
    Dernier message: 23/01/2006, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo