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 :

order by sur une chaine de caractère [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Points : 324
    Points
    324
    Par défaut order by sur une chaine de caractère
    bonjour a tous,
    j'ai une table de ma base de données mysql (que je ne peu modifier) qui a un champ de la forme (mois année) du genre.
    - Octobre 2008
    - janvier 2008
    - aout 2007
    - etc...

    Je doit donc ranger cela par ordre décroissant.
    le problème qui se pose à moi est qu'il affiche plutôt:
    - Octobre 2008
    - aout 2007
    - janvier 2008

    quand je fais un order by mois_anne DESC

    y a t-il une solution pour ranger cela sans changer ma base de données?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    il va falloir convertir ca en type DATE, va falloir par contre changer la locale de lc_time_names pour mettre ca en français

  3. #3
    Membre averti Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Points : 324
    Points
    324
    Par défaut
    Merci @stealth35 mais comment se fait cette conversion?
    Je peux avoir un exemple?
    merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par cyreel Voir le message
    Merci @stealth35 mais comment se fait cette conversion?
    Je peux avoir un exemple?
    merci
    j'ai regarder visiblement STR_TO_DATE ne prend pas la locale

    http://dev.mysql.com/doc/refman/5.5/...e-support.html
    lc_time_names currently does not affect the STR_TO_DATE() or GET_FORMAT() function.

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    bon c'est un peu spé mais ca marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *, STR_TO_DATE(REPLACE(mois_anne, SUBSTRING_INDEX(mois_anne, ' ', 1 ), FIND_IN_SET(
    	SUBSTRING_INDEX(mois_anne, ' ', 1 ),
    	'janvier,fevrier,mars,avril,mai,juin,juillet,aout,septembre,octobre,novembre,decembre'
    )), '%c %Y') AS mois_anne_date
    FROM tatable
    ORDER BY mois_anne_date DESC

  6. #6
    Membre averti Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Points : 324
    Points
    324
    Par défaut
    Vraiment merci!!!!
    ça marche nickel. je n'aurai pas trouvé ça tout seul en tout cas.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par cyreel Voir le message
    Vraiment merci!!!!
    ça marche nickel. je n'aurai pas trouvé ça tout seul en tout cas.
    je te conseil quand même de normaliser tes dates, sachant que mysql ou php peux facilement te formater une date comme tu le souhaites

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

Discussions similaires

  1. tr et sed sur une chaine de caractére
    Par elflamby dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 13/09/2007, 17h20
  2. Test sur une chaine de caractéres
    Par Je-cherche-pfe dans le forum C#
    Réponses: 3
    Dernier message: 05/09/2007, 00h44
  3. Réponses: 2
    Dernier message: 13/05/2007, 19h34
  4. prèlèvements sur une chaine de caractères
    Par Nicobp dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2006, 02h14
  5. Dégradé sur une chaine de caractères avec 3 a 4 couleurs
    Par avogadro dans le forum Composants VCL
    Réponses: 6
    Dernier message: 31/03/2006, 14h21

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