Menu déroulant avec récupération des données via mysql --> PB [Résolu]

Signaler
Messages postés
2
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
26 juillet 2005
-
Messages postés
2
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
26 juillet 2005
-
Bonjour à tous,
Je suis un débutant en code php. (et nouveau également sur ce site)
Il m'a fallu la journée pour créer 2 pages PHP. (Merci internet et les forums)

Ma première page est un menu déroulant qui une fois déroulée laisse apparaitre des informations contenues dans une base de donnée mysql.
Il s'agit d'une liste de nom.
Je choisi un nom puis valide.

La seconde page récupère la valeur de 'nom' dans l'url puis m'affiche après une requete mysql , le prénom, l'adresse, le téléphone de la personne souhaitée.

Voici mon problème :
Si j'ai plusieurs noms identiques, ma seconde page récupère la première ligne quelle rencontre !!

Ma table contient une clé primaire qui s'auto incrémente à chaque ligne, du coup pour chaque nom, j'ai qu'un seul numéro (id) qui lui ait attribué....

Il faudrait que j'envoie à ma seconde page en paramètre, mais je ne sais pas faire.....

VOICI MON CODE :

Page menu.php

<form action= "verif.php" method="get">

<?


//J'appelle mon include
include("_conn.php"); //ce fichier contient les informations de connexion à la base.


//Connexion à la base de donnée
mysql_connect($dbhost,$dblogin,$dbpassword);mysql_selectdb($dbname);



$query = "SELECT nom FROM Personnel ORDER BY nom";
$result = mysql_query($query);



if ($num=mysql_num_rows($result) >0)
{
echo "
<select name='nom'>
<OPTION value='defaut'>NOMS : </OPTION>
";



while($row = mysql_fetch_array($result))
{
echo "<option value='$row[0]'> $row[0] </OPTION>";
}
echo "</SELECT>";


}


echo "

";
echo "\n";


?>

</form>

Et voici ma seconde page : Je l'ai déja modifier pour qu'elle me récupère bien les bonnes coordonnées de la personne.

verif.php

<?php


include("_conn.php");


$nom =$_GET['nom'];
$id= $_GET['id'];



mysql_connect($dbhost,$dblogin,$dbpassword);mysql_selectdb($dbname);



$result =mysql_query("SELECT * FROM Personnel WHERE nom='$nom' and id='$id' ");
if ($row=mysql_fetch_array($result)) {


echo "Nom : " . $row["nom"] . "
";
echo "Prénom : " . $row["prenom"] . "
";
echo "Adresse Principale: " . $row["adresse1"] . " " . $row["cp"] . " " .$row["ville"] . "
";
echo "Téléphone : " . $row["tel"] . "
";

} else {
echo "Désolé, mais cet utilisateur est inconnu
";
}


mysql_close();


?>



En espérant que vous aurez compris et que vous pourrez m'aider.
Je vous remercie.

Cougar5

Voila mon problème :

2 réponses

Messages postés
285
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2006
1
Je vais te proposer un solution simple et pragmatique...

La clé primaire de table est bien un id qui s'auto incrémente, donc
avec cet id tu ne peux avoir qu'une seule personne de ton "personnel"

Donc il suffit de lister dans la liste précédente à la fois les noms et prénoms des personnes comme ceci :



echo "<option value='$row[id]'> $row[nom] $row[prenom] </OPTION>";


Du coup dans ton menu déroulant plus moyen de se tromper. Au
finish quand tu récupères dans verif.php. TU te chopse l'id unique qui
te permet d'avoir les coordonnées des personnes que tu veux...



Ensuite ce que tu peux faire c'est encore mieux trier ton personnel en modifiant la requete comme ceci SELECT nom FROM Personnel ORDER BY nom ASC, prenom ASC



Comme ça si tu as deux personnes qui ont le même nom mais pas le même
prénom tu ne peux plus te tromper en plus se seras super formatter
nickel...
Messages postés
2
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
26 juillet 2005

Bonjour,

Un seul Mot : MERCI
Tout fonctionne nickel ... Comme koi, de temps en temps, il vaut mieux revoir un peu ca copie, plutot que de réfléchir comme un fou.
En effet, c beaucoup plus simple !!

Merci encore.

Cougar5