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 :

Regroupemment par chiffres et lettres


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Par défaut Regroupemment par chiffres et lettres
    Bonjour,

    J'utilise une fonction qui me permet de regrouper les enregistrements par la première lettre des enregistrement

    Exemple

    A
    Antoine
    Alexis

    B
    Brice

    C
    Carol
    Christian
    Cecile
    etc ....


    Cependant j'ai aussi des enregistrement qui commence par des chiffres est t'il possible de faire un regroupement pour tous les enregistrements commençant par les chiffres de 0 a 9 ?

    Voici la requête

    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
    21
    22
    23
    <?php
    $sql = "SELECT id,nom FROM test ORDER BY nom ASC";
    $req = mysql_query($sql)or die(mysql_error());
    $prems_lettre='1';
     
    while ($res = mysql_fetch_assoc($req))
    {
        if(strtolower($res['nom'][0])!= $prems_lettre)
        {
            echo '<span id="'.$res['nom'][0].'"><br />- ',strtoupper($res['nom'][0]),' -</span><br /><br />';
            $prems_lettre = strtolower($res['nom'][0]);
        }
     
        $nom = $res[nom];
        $id_annonceur = $res[id];
        echo "<li><a href=\"$nom\">$res[nom]</a></li><br />";
     
     
    }
    ?>
    </ul><div>
    <?php
    }
    Ce qui donnerai

    [0 - 9]
    12
    78 <<< résultat de la modif que je n'arrive pas a faire
    49

    A
    Antoine
    Alexis

    B
    Brice

    C
    Carol
    Christian
    Cecile
    etc ....




    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 699
    Par défaut
    essaye quelque chose comme ça : (je suis parti de ton code et je l'ai modifié sans le tester, c'est juste pour l'idée)

    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
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    $sql = "SELECT id,nom FROM test ORDER BY nom ASC";
    $req = mysql_query($sql)or die(mysql_error());
     
    $groupeEnCours = '';
     
    while ($res = mysql_fetch_assoc($req))
    {
        $premierCharactere = substr($res['nom'], 0, 1);
     
        if (preg_match('#[0-9]#', $premierCharactere)) {
            $groupe = '[0-9]';
        } else {
            $groupe = strtoupper($premierCharactere);
        }
     
        if ($groupe != $groupeEnCours) {
            $groupeEnCours = $groupe;
            echo "<span id=\"$groupeEnCours\"><br />- $groupeEnCours -</span><br /><br />";
        }
     
        $nom = $res['nom'];
        $id_annonceur = $res['id'];
        echo "<li><a href=\"$nom\">$nom</a></li><br />";
    ?>
    </ul><div>
    <?php
    }
    par contre tu remarqueras qu'avec ce code, si la 1re lettre a un accent le mot sera dans une liste à part

Discussions similaires

  1. [MySQL] Faire une recherche par la première lettre (ou chiffre) d'une liste
    Par Rowmanow dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/01/2011, 21h17
  2. conversion chiffre en lettre
    Par arezki76 dans le forum Oracle
    Réponses: 3
    Dernier message: 17/12/2005, 12h31
  3. [VB.NET] Import donnes d'excel : chiffres et lettres
    Par JohnGT dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/10/2004, 18h53
  4. Réponses: 4
    Dernier message: 21/07/2004, 10h51

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