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

PHP & Base de données Discussion :

Tri sur nombres [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut Tri sur nombres
    bonjour ,

    voici mon probleme j'ai le tri suivant qui s'affiche :

    xpw2 2.8
    xpw2 2.11
    xpw2 2.10

    alor que je voudrais

    xpw2 2.11
    xpw2 2.10
    xpw2 2.8
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
     ORDER BY  UCName DESC ,UCNameme DESC ,_9 DESC,Prio ASC,txtRID DESC

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    ASC => DESC

    je suis assez surpris.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    bonjour,

    un peu plus compliqué que ca

    voici mon probleme j'ai le tri suivant qui s'affiche :

    xpw2 2.8
    xpw2 2.12
    xpw2 2.11
    xpw2 2.10

    alor que je voudrais

    xpw2 2.12
    xpw2 2.11
    xpw2 2.10
    xpw2 2.8

    on veut absolument le 12 audessu et le souci c'est que le 2.8 il le prend comme 2.80 alor que pour nous 2.8 est endessus de 2.10 et pas audessu

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ce tri provint surement du typage de tes données , quel est il ?

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suppose que "xpw2 2.12" est le contenu de ta colonne, auquel cas elle est effectivement triée par ordre alphabétique.

    Si tu as toujours le même format "nom espace numéro point numéro", tu peux tenter un truc moche comme

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ORDER BY 
    SUBSTRING_INDEX(UCName," ",1) ASC,
    Cast(SUBSTRING_INDEX(SUBSTRING_INDEX(UCName," ", -1),".",1) as INT) ASC,
    CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(UCName," ", -1),".",-1)  as  INT )ASC
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    bonjour ,

    mon souci c'est que parfois je peut tomber sur juste des letre

    ou alor xpw2.8 ou a.2.8 ou xpw2.0.0

  7. #7
    Invité
    Invité(e)
    Par défaut
    pourquoi ne pas enregistré les lettres dans un champs et les chiffres dans un autre si ils sont présents ?

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le problème est que 2.0.0 n'est pas un chiffre.

    Si tes données en sont pas uniformes, tu ne peux évidemment pas obtenir un tri.

    Si tu as quand même un schéma approchant (par exemple "un groupe de lettres, un séparateur puis des chiffres avec un séparateur"), tu peux procéder à un découpage de cette structure en PHP puis faire le tri en PHP ; ce sera plus simple à écrire qu'en SQL.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Invité
    Invité(e)
    Par défaut
    Ah oui exact j'étais partie du principe qu'il s'agissais de virgules

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut

    Ca change rien... Avec des points ou des virgules, c'est toujours pas un chiffre !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bovino Voir le message

    Ca change rien... Avec des points ou des virgules, c'est toujours pas un chiffre !
    Evidemment mais je me basais sur le premier post ou cette éventualité n'était pas présente

  12. #12
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    tu charges tout dans le tableau php et tu fais un tri sur un ordre naturel.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    salut,

    Le probleme comme j'ai indiquer je ne fait pas que 1 tri sur ce champs je fait aussi des tris sur les autres champs apres

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux tout trier en PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    salut,
    en fesant tout l'algo moi meme alor ?

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le découpage du nom, oui il faudra le faire "maison".
    Rends-toi bien compte par contre que si tu codes un découpage pour "2.0.0" et qu'un jour on te colle un "2.0.0.0", ça n'ira pas.
    Faire quelque chose de générique est possible mais cela complique evidemment.

    Après pour le tri, tu as la fonction array_multisort.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    d'accord merci tout le monde je vais faire ca maison alor doit bien avoir quelque chose qui permet de recuprer si c'est un chifre de recuprer tout les chiffre jusque quand il tombe sur une letre je vais chercher ca

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

Discussions similaires

  1. Optimisation de tri de nombres sur plusieurs colonnes par ordre croissant
    Par jurassic pork dans le forum Général Python
    Réponses: 5
    Dernier message: 05/02/2015, 22h56
  2. tri sur champ alphanumérique avec des nombres ou des lettres
    Par Satanas_et_diabolo dans le forum Débuter
    Réponses: 2
    Dernier message: 27/04/2012, 12h28
  3. [CR 9] - tri sur nombre de pages
    Par jfphan dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 17/06/2008, 14h58
  4. Tri sur une chaîne de caractères contenant des nombres
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2006, 11h52
  5. [VB6] [MSHFlexGrid] Tri sur clic dans la première ligne
    Par degreste dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 06/03/2003, 00h42

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