Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/11/2006, 10h46   #1
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 66
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : novembre 2006
Messages : 66
Points : 25
Points : 25
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 :
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 :
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.
ksper92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 11h12   #2
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Utilise une clause "distinct" dans ta requête, ca ne t'affichera que des noms "distinct" les uns des autres :

Code :
$requete=mysql_query("select distinct nom from accueil WHERE heure_prise_compte='' ORDER BY nom");?>
--
Rakken
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2006, 11h25   #3
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 66
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : novembre 2006
Messages : 66
Points : 25
Points : 25


Merci beaucoup...

Encore une nouvelle clause pour moi. Je ne la connaissais pas.
Je vois qu'il me reste encore beaucoup de chemin à faire
ksper92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h17.


 
 
 
 
Partenaires

Hébergement Web