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 :

Classement alphabétique avec séparation par lettres


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut Classement alphabétique avec séparation par lettres
    Bonjour,

    Je cherche à faire un classement alphabétique en une seul requête si possible avec une séparation pour chaque lettre en gros avoir pour résultat :

    A
    ampoule
    alambique ...

    B
    bouchon
    ballon ...

    ...

    Je pourrais facilement faire une requete sql pour chaque lettre mais sa serait vraiment trop lourd ou je pourrais faire un simple classement alphabétique en boucle mais alors je ne vois pas comment séparer chaque lettre comme dans l'exemple ci-dessus.

    Si quelqu'un à une idée

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Bonjour,

    Un premier truc qui me vient à l'esprit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    $var_test = '';
     
    foreach($sortie as $row){
     
    	$var_actuelle = strtoupper(substr($row['title'],0,1));
     
        if($var_actuelle != $var_test){
     
    		$var_test = $var_actuelle;
     
    		echo '<br />'.$var_test.'<br />';
     
    	}
     
    	echo $row['title'].'<br />';
     
     
    }
    Y a surement mieux...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    Oui déja sa m'a l'air pas mal, je n'y avais même pas pensé

    Je me demande par contre si il existe pas une fonction sql qui existe pour ce genre de problème ?

    Sinon je vais utiliser ta technique, merci

  4. #4
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    P.S. : j'ai oublié de préciser que le ORDER BY de ta requête doit être sur le mot de sortie, car sinon ça risque de donner n'importe quoi comme résultat.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    Bien comme je souhaite classer par nom je fais ORDER BY name ...

    C'est bien sa que tu veux dire ?

  6. #6
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    oui, tout à fait

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    Ta solution à l'air de marcher, je sais pas si c'est vraiment propre mais sa me convient Merci

  8. #8
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    En tout cas, c'est la solution la plus optimisée que j'ai à l'esprit.

    Si quelqu'un a mieux, je suis aussi preneur

    Bonne soirée...

Discussions similaires

  1. [PHP 5.3] Créer un index de noms avec césure par lettres
    Par renaud26 dans le forum Langage
    Réponses: 6
    Dernier message: 10/10/2014, 15h12
  2. Liste déroulante avec affichage par lettres
    Par Naifman dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/12/2011, 09h49
  3. Onglet avec trie par Lettre alphabétique
    Par joebar0212 dans le forum 4D
    Réponses: 3
    Dernier message: 02/11/2010, 19h51
  4. Réponses: 2
    Dernier message: 04/03/2009, 10h38
  5. Réponses: 23
    Dernier message: 18/05/2007, 09h21

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