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 :

[SQL] Liste déroulante à partir d'une table avec tri


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 72
    Points : 57
    Points
    57
    Par défaut [SQL] Liste déroulante à partir d'une table avec tri
    Bonjour, je vous présente l'objectif à atteindre :
    Il s'agit de la gestion de l'accueil de personne.
    J'utilise donc une table sql avec différentes infos dont 2 qui sont celles qui m'intéresse dans ce cas à savoir le nom et le prénom de la personne.

    Il y a donc un formulaire de saisie en php avec ces deux champs qui sont transferés dans la table.
    Lorsque la personne est prise en charge, il faut rappeller l'enregistrement lui correspondant pour que le reste de la table soit renseigné.
    Pour cela, j'utilise des liste déroulantes directement générées avec les enregistrements présents dans la table.
    Première liste déroulante pour le nom et deuxième liste pour le prénom lié au nom.
    Jusque là, tout va bien.
    Mon problème (qui est surtout esthétique je dois l'avouer ) est que si j'ai plusieurs personnes en attente de prise en charge avec le même nom, dans la liste deroulante du nom, j'ai plusieurs fois le même donc , ce n'est pas très beau...
    Exemple :
    J'ai en attente Toto Pierre, Tata Paul, Tata Jacques.
    La zone déroulante du nom va m'afficher :
    Tata
    Tata
    Toto

    Je voudrais donc savoir s'il est possible de n'avoir que :
    Tata
    Toto
    sans la répetition des homonynes trouvés dans la champs nom de la table.

    Je vous présente également le code des pages en question :

    La page de la zone déroulante du nom :

    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
    <body>
    <form name="modification" action="modification_p.php" method="post">
    <div align="center">
      <h1><strong><ins>GESTION DE L'ACCUEIL DU PUBLIC</ins></strong></h1>
      <BR />
      <BR />
      <BR /></div>
     
    <p align="center"><strong>Saisie des éléments d'identité :</strong></p>
    <table width="50%" border="1" align="center">
    <tr>
         <td colspan="2" class="titre" align="center" height="94">Rechercher un Nom</td>
       </tr>
       <tr>
         <td width="273" height="99" align="center"> Choisissez un Nom dans
           la liste :
         <td width="467" height="99">    
    <?php
    error_reporting(E_ALL ^ E_NOTICE);
    // Parametres mysql
    define('DB_SERVER', 'localhost');
    define('DB_SERVER_USERNAME', 'root');
    define('DB_SERVER_PASSWORD', '');
    define('DB_DATABASE', 'test');
     
    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
    DB_SERVER_PASSWORD)
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(DB_DATABASE, $connect);
     
    //Création de la requete.
    $requete=mysql_query("select nom from accueil WHERE heure_prise_compte='' ORDER BY nom");?>
    <br>
     
    <?php 
       echo('<select name="nom" >');
             echo('<option value="'.'">'.'</option>');
          while ($ligne=mysql_fetch_object($requete)){
       echo('<option value="'.$ligne->nom .'">'.$ligne->nom.'</option>'); }
     echo('</select>');
     ?> 
     
    <input type="submit" value="envoyer" name="valider" />
    </td>
    </td>
    </tr>
    </table>
    </form>
    Celle pour le prénom :

    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
    <form name="modification" action="modification1.php" method="post">
    <div align="center">
      <h1><strong><ins>GESTION DE L'ACCUEIL DU PUBLIC</ins></strong></h1>
      <BR />
      <BR />
      <BR /></div>
     
    <p align="center"><strong>Saisie des éléments d'identité :</strong></p>
    <table width="50%" border="1" align="center">
    <tr>
         <td colspan="2" class="titre" align="center" height="94">Rechercher un Nom<br />
    	  <strong>
    	 <?php
    	 echo $nom; ?>
    	 </strong>
    	 </td>	
       </tr>
       <tr>
         <td width="273" height="99" align="center"> Choisissez un Prenom dans
           la liste :
         <td width="467" height="99">    
    <?php
    error_reporting(E_ALL ^ E_NOTICE);
    // Parametres mysql
    define('DB_SERVER', 'localhost');
    define('DB_SERVER_USERNAME', 'root');
    define('DB_SERVER_PASSWORD', '');
    define('DB_DATABASE', 'test');
     
    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
    DB_SERVER_PASSWORD)
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(DB_DATABASE, $connect);
     
    //Création de la requete.
    $requete=mysql_query("select prenom from accueil WHERE nom='$nom' AND heure_prise_compte='' ORDER BY prenom");?>
    <br>
     
    <?php 
       echo('<select name="prenom" >');
             echo('<option value="'.'">'.'</option>');
          while ($ligne=mysql_fetch_object($requete)){
       echo('<option value="'.$ligne->prenom .'">'.$ligne->prenom.'</option>'); }
     echo('</select>');
     ?>
     <input type="hidden" size="30" style="border-width : 0px; background-color: transparent;" value="<?php echo $nom; ?>" name="nom" />
     
    <input type="submit" value="envoyer" name="valider" />
    </object>      
    </td>
    </td>
    </tr>
    </table>
    </form>
    Voilà, en plus je débute en php et donc, j'ai du mal à voir comment je pourrai arriver à ce résultat.
    Merci de votre aide.

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Utilise une clause "distinct" dans ta requête, ca ne t'affichera que des noms "distinct" les uns des autres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_query("select distinct nom from accueil WHERE heure_prise_compte='' ORDER BY nom");?>
    --
    Rakken
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 72
    Points : 57
    Points
    57
    Par défaut


    Merci beaucoup...

    Encore une nouvelle clause pour moi. Je ne la connaissais pas.
    Je vois qu'il me reste encore beaucoup de chemin à faire

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

Discussions similaires

  1. [PHP 5.3] Création liste déroulante à partir d'une table
    Par Godard dans le forum Langage
    Réponses: 2
    Dernier message: 26/07/2010, 09h03
  2. [AC-2007] zone de liste déroulante à partir d'une table
    Par David42000 dans le forum IHM
    Réponses: 2
    Dernier message: 24/07/2009, 11h29
  3. Réponses: 7
    Dernier message: 24/01/2007, 22h54
  4. [MySQL] Remplissage d'une liste déroulante à partir d'une requête SQL
    Par gaucher dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 11/05/2006, 15h46
  5. [MySQL] Liste déroulante provenant d'une table
    Par richton95 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/11/2005, 10h07

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