Liste deroulante PHP
Geo
-
Geo -
Geo -
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
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:
- Liste deroulante PHP
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Easy php - Télécharger - Divers Web & Internet
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
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
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
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
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
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
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
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
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