Liste deroulante PHP

Fermé
Geo - 13 févr. 2006 à 16:33
 Geo - 16 févr. 2006 à 08:11
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.
Je pense que cela vient du fait que tous les champs se trouvent dans une même table et que la clé primaire est id_contact et qu'il n'arrive pas à ajouter un nouveau id_contact avec les même informations, je suppose.
mais je ne sais pas comment m'y prendre.

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":


if($debugSQL) {
@$id_contact = $_GET["id_contact"];
@$naissance = $_GET["naissance"];
@$titre = $_GET["titre"];
@$nom = $_GET["nom"];
@$prenom = $_GET["prenom"];
@$adresse = $_GET["adresse"];
@$CP = $_GET["CP"];
@$ville = $_GET["ville"];
@$tel = $_GET["tel"];
} else {
if($debugSQL) {
@$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"];
@$tel = $_POST["tel"];
}

$sql = "INSERT INTO $T_contacts(id_contact,titre,nom,prenom,naissance,adresse,CP,ville,tel)VALUES ". "('$id','$titre','$nom','$prenom','$naissance','$adresse','$CP','$ville','$tel')";
if($debugSQL) {
if(mysql_query($sql)) echo "Ecriture dans la table : OK <br>"; else echo "Ecriture dans la table : ERREUR <br>$sql";
} else {
@mysql_query($sql);
}
mysql_close($lienDB);

?>

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

Geo
A voir également:

4 réponses

Salut Geo
j'ai pas recomposé ton code mais je te donne une astuce pour que tu puisse trouver le probleme ds ton code:
Affiche le contenu de ta variable " $sql " apres l'instruction suivante: $sql = "INSERT INTO $T_contacts(id_contact,titre,nom,prenom,naissance,adresse,CP,ville,tel)VALUES ". "('$id','$titre','$nom','$prenom','$naissance','$adresse','$CP','$ville','$tel')";

echo $sql;

Prend le resultat affiché et va le tester directement en ligne de commande ou grace à phpmyadmin (parite SQL).
Il te renvera surement un message d'erreur ki sera plus explicite.

En fait si l'enregistrement ne passe pas, c'est pke la syntaxe que tu utilise est sans doute correcte, mais ta requete doit etre fausse.

Bonne chance
0
merci pour ta réponse et j'ai fait ce que tu m'as dit et voila le resultat que cela m'affiche:

INSERT INTO tfi2003_contacts(id_contact,titre,nom,prenom,naissance,adresse,CP,ville,tel) VALUES ('','','','','--','','','','')
Ecriture dans la table : OK

Il ne m'indique aucune erreur !!!!
Et les champs sont vides

Que faire merci
0
antic80 Messages postés 4785 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
14 févr. 2006 à 09:09
salut

je pense que ca plante au nivo de ton insert je pense qu'il arrive pas a faire la différence entre Post et Get

essaye juste de mettre au nivo de ton formulaire method="post" ou methode="get"

voir si ca change kelke chose
0
Merci antic80

g essayé les 2 methodes post puis get et toujours pas de resultat

ca ne serai pas au nivo de $lstpatient (la variable liste) que je dois indiqué quelquepart dans le fichier contact_view_add2.php pour qu'il insert les données dans la table. peut etre justement dans la requete insert into???

Si c ça la soluce comment je dois faire????

Merci bcp

@+
Geo
0
Merci antic80 mais cela ne fonctionne toujours pas

avant quand il y avait des <input name="nom" type="date" id="$nom"> ça fonctionnait correctement
c'est depuis que j'affiche cette liste qu'il ne m'enregistre rien dans la base alors que les informations qui sont dans cette liste correspondent bien aux données enregistrés precedement dans la base

Merci pour vos réponses
@+

Geo
0
Quelqu'un a t'il trouve une solution a mon probleme????
je ne c pas du tout koi faire

Merci

Geo
0