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 :

Requete (afficher resultat en fonction de la premiere lettre) [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut Requete (afficher resultat en fonction de la premiere lettre)
    Bonjour

    j'ai une page dans mon script pour afficher les résultats par lettre selon se se que choisis l'utilisateur (d’ailleurs si y'a moyen l'amélioré ce code je suis preneur)

    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
    <a href="alpha.php?lettre=a">A</a>
         <a href="alpha.php?lettre=b">B</a>
         <a href="alpha.php?lettre=c">C</a>
         <a href="alpha.php?lettre=d">D</a>
         <a href="alpha.php?lettre=e">E</a>
         <a href="alpha.php?lettre=f">F</a>
         <a href="alpha.php?lettre=g">G</a>
         <a href="alpha.php?lettre=h">H</a>
         <a href="alpha.php?lettre=i">I</a>
         <a href="alpha.php?lettre=j">J</a>
         <a href="alpha.php?lettre=k">K</a>
         <a href="alpha.php?lettre=l">L</a>
         <a href="alpha.php?lettre=m">M</a>
         <a href="alpha.php?lettre=n">N</a>
         <a href="alpha.php?lettre=o">O</a>
         <a href="alpha.php?lettre=p">P</a>
         <a href="alpha.php?lettre=q">Q</a>
         <a href="alpha.php?lettre=r">R</a>
         <a href="alpha.php?lettre=s">S</a>
         <a href="alpha.php?lettre=t">T</a>
         <a href="alpha.php?lettre=u">U</a>
         <a href="alpha.php?lettre=v">V</a>
         <a href="alpha.php?lettre=w">W</a>
         <a href="alpha.php?lettre=x">X</a>
         <a href="alpha.php?lettre=y">Y</a>
         <a href="alpha.php?lettre=z">Z</a>
    Dans ma page alpha.php je récupère donc la lettre choisis.
    Mais j'aimerai savoir la requête qu'il faut utiliser pour afficher les noms commençant par la lettre choisis par l'utilisateur.

    Par rapport à se que j'ai trouver je fais le code suivant mais ça ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $lettre=$_GET["lettre"];
     
    SELECT *  FROM liste_tel where Nom= '$lettre%' ORDER BY Nom ASC;
    Pouvez-vous m'aider ?
    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    bonjour c'est pas
    where Nom= '$lettre%' ORD...
    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where Nom like '$lettre%' ORD...

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    //=========================================    
     
    // requête SQL qui compte le nombre total 
     
    // d'enregistrements dans la table.
     
    //=========================================
    $lettre=$_GET["lettre"];
    $select = 'SELECT count(id) FROM liste_telephone where Nom like "$lettre%" ';
     
    $result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
     
    $row = mysql_fetch_row($result);
     
    $total = $row[0];
     
     
     
    //=========================================
     
    // vérifier la validité de notre variable 
     
    // $limite;
     
    //=========================================
     
    $verifLimite= verifLimite($limite,$total,$nombre);
     
    // si la limite passée n'est pas valide on la remet à zéro
     
    if(!$verifLimite)  {
     
        $limite = 0;
     
    }
     
    //=========================================
     
    // requête SQL qui ne prend que le nombre 
     
    // d'enregistrement necessaire à l'affichage.
     
    //=========================================
     
     
    $select = 'select * FROM liste_telephone where Nom like "$lettre%" ORDER BY Nom ASC limit '.$limite.','.$nombre;
     
    $result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
     
     
     
    //=========================================    
     
    // si on a récupéré un resultat on l'affiche.
     
    //=========================================
     
    if($total) {
     
        // début du tableau
     
     
     
        while($row = mysql_fetch_array($result)) {
     
             $initial=$row[1];
      $nom=$row[2];
      $prenom=$row[3];
      $numero=$row[4];
     
     
     
     
    echo "<table width='100%' border=0 >
    <hr>
    <tr>
    <td style='border:1px solid black'><img src='../images/photo/defaut2.png' /></td>
    <td width='33%'><b>Nom :</b> $nom<br><b>Prenom :</b> $prenom <br> <b>Initial:</b> $initial</td>
    <td width='33%'></td>
    <td width='33%'><br><b>Numero de poste :</b><font color='#CC3300'> $numero</font></td>
    </tr>";
     
        }
     
        echo '</table>'."\n";
     
    }
     
    else echo 'Pas d\'enregistrements dans cette table...';
     
    mysql_free_result($result);

    Reponse, pas d'enregistrement dans la table, peux importe la lettre choisis, y'a un soucis mais ou ?

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    c'est ici :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $select = 'SELECT count(id) FROM liste_telephone where Nom like "$lettre%" ';

    ta variable n'est pas interprétée car se trouvant entre simples quotes. Essaies ceci :


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $select = "SELECT count(id) FROM liste_telephone where Nom like '$lettre%'";

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    fais unpour voir comment s'affiche ta requête

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Il ne faut pas mélanger guillemets et apostrophes n'importe comment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $select = 'SELECT count(id) FROM liste_telephone where Nom like "'.$lettre.'%" ';
    Aussi, là tu vas pas rechercher les nom qui commencent par la lettre, mais qui la contienne au début, je pense que c'est pas très performant par rapport à çà (la manière la plus logique) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $select = 'SELECT count(id) AS nb FROM liste_telephone where SUBSTRING(Nom,1,1) = "'.$lettre.'"';

  7. #7
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    Merci notar

    ----------

    --> ThomasR

    Ok la requête en elle même fonctionne correctement. Mais c'est mon comptage de page qui pars en cacahuète. Je vais essayer de trouver ça moi même.

    Par contre dans la requête que tu m'as passé.

    "AS nb" ça signifie quoi ? J'ai essayer la requête avec et sans et jvois pas de différence à l'affichage.

  8. #8
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    c'est un alias te permettant de récupérer la valeur de count(id) en utilisant nb. Tu peux positionner des alias sur le nom des tables aussi pour le requetage

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

Discussions similaires

  1. [MySQL] Afficher resultat requete via fonction
    Par cobra85 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 20/03/2015, 22h05
  2. Afficher resultat plusieurs fonctions dans meme div
    Par Nicolas94 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/10/2009, 20h50
  3. Afficher resultat d'une requete dans 1 textbox
    Par papy75 dans le forum Requêtes et SQL.
    Réponses: 20
    Dernier message: 01/04/2008, 10h55
  4. afficher resultat d'une requete sur une page jsp
    Par vasco_di_gama dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/07/2007, 14h56
  5. Afficher resultat d'une requete dans un DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 8
    Dernier message: 05/06/2006, 22h10

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