Insert info liste deroulante php dans base [Fermé]

- - Dernière réponse : StreM
Messages postés
519
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
Afficher la suite 

1 réponse

Messages postés
519
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
28 février 2007
121
0
Merci
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 !