Insert info liste deroulante php dans base

Fermé
Geo - 16 févr. 2006 à 15:52
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 - 17 févr. 2006 à 09:47
Bonjour,

Débutant en PHP, je souhaiterais que la selection d'une information dans une liste déroulante soit enregistrer dans la base de données.
Une fois selectionner et que j'ai cliquer sur "Enregistrer" il ne m'indique pas d'erreur mais n'ecrit pas les informations dans la table.


Explication des fichiers :
voici la requete que j'effectue et la liste deroulante mis dans la variable $lstpatient:

<?php
// Requête SQL
$rqSql = "SELECT id_contact,nom,prenom,adresse,CP,ville,naissance,tel FROM $T_contacts ORDER BY nom ASC";
// Exécution de la requête
$result = mysql_query($rqSql) or die( "Exécution requête impossible.");
mysql_close( $lienDB);

// Construction de la chaîne de caractères qui fait la liste

$lstpatient = "<SELECT NAME='patient'>";
$lstpatient .= "<OPTION VALUE=0>Choisissez</OPTION>";

// On boucle sur la table
while ( $contact = mysql_fetch_array( $result)) {

$id = $contact["id_contact"];
$nom = $contact["nom"];
$prenom = $contact['prenom'];
$naissance = $contact['naissance'];
$adresse = $contact['adresse'];
$CP = $contact['CP'];
$ville = $contact['ville'];
$tel = $contact['tel'];
$lstpatient .= "<OPTION VALUE='$contact'>$nom $prenom née le $naissance - adresse: $adresse $CP $ville - n° tel: $tel</OPTION>";
}
$lstpatient .= "</SELECT>";
?>

Ici, j'indique le fichier "contact_view_add2.php" (qui permet de verifier les champs les champs et les insert dans la table) et j'affiche la liste deroulante:

<form action="contact_view_add2.php" method="<?php if($debugSQL) echo "get"; else echo "post"; ?>" name="form_add" id="form_add">

<?php echo $lstpatient ?>

<input type="submit" name="Submit" value="Enregistrer">

</form>

Et voici le détail du fichier "contact_view_add2.php":

<?php

@$id_contact = $_POST["id_contact"];
@$naissance = $_POST["naissance"];
@$titre = $_POST["titre"];
@$nom = $_POST["nom"];
@$prenom = $_POST["prenom"];
@$adresse = $_POST["adresse"];
@$CP = $_POST["CP"];
@$ville = $_POST["ville"];
@$date_entree = $_GET["date_entree"];
@$tel = $_POST["tel"];

$sql = "INSERT INTO tfi2003_contacts VALUES ('$id_contact','$titre','$nom','$prenom','$naissance','$date_entree','$adresse','$CP','$ville','$tel')";

echo $sql;

mysql_query($sql) or die ('Ecriture dans la table : ERREUR !!!! '.' <br>'. mysql_error());

mysql_close($lienDB);

?>

voici ce que le echo $sql affiche :
INSERT INTO tfi2003_contacts VALUES ('326','','','','--','2006-01-11','','','','')

'326' = id_contact et '2006-01-11' = date_entree

Pourkoi les autres informations ne s'enregistre pas dans la base????

J'espère avoir été clair et vous remercie par avance pour votre aide

Geo
A voir également:

1 réponse

StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
17 févr. 2006 à 09:47
Hmmm....
Il faudrait revoir tes premiers cours de HTML ;-)
tu as un <SELECT NAME='patient'>
et un <OPTION VALUE='$contact'>

Le nom de ta variable $_POST['patient'], c'est le contenu de ta variable $contact.
Mais toutes les infos apres <OPTION>, tu ne peux pas les récupérer : c'est juste le texte d'affichage !

Je te conseille de faire des <input type="hidden" pour chaque @$id_contact = $_POST["id_contact"];
@$naissance = $_POST["naissance"];
@$titre = $_POST["titre"];
@$nom = $_POST["nom"];
@$prenom = $_POST["prenom"];
@$adresse = $_POST["adresse"];
@$CP = $_POST["CP"];
@$ville = $_POST["ville"];
@$date_entree = $_GET["date_entree"];
@$tel = $_POST["tel"];

Et tu executes un javascript pour les remplir en fonction de ce que l'utilisateur selectionne.

Bon courage !


0