Bonjour,
Voila je rencontre un petit problème avec mon code. Je ne trouve pas sur le Web la condition pour pour enregistrer le choix de la liste déroulante dans la BDD.
Merci d'avance
Décrivez ici votre code ou ce que vous cherchez à faire
<html>
<?php
error_reporting(E_ALL);
if(isset($_POST['submit']))
if($nom){
}else
{
$nom =htmlentities(trim($_POST['nom']));
$prenom =htmlentities(trim($_POST['prenom']));
$adresse =htmlentities(trim($_POST['adresse']));
$ville =htmlentities(trim($_POST['ville']));
$bdd = new PDO('mysql:host=localhost;dbname=phplogin;charset=utf8', 'root', '');
try
{
$bdd = new PDO('mysql:host=localhost;dbname=phplogin;charset=utf8', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$req = $bdd->prepare("INSERT INTO inscription (nom, prenom, adresse, ville) VALUES (:nom, :prenom, :adresse, :ville)");
$req->execute(array("nom" => $nom, "prenom" => $prenom, "adresse" => $adresse, "ville" => $ville));
die("Inscription terminée <ahref=traitement.php connectez</a>vous");
};
?>
<head>
<meta charset="utf-8" />
</head>
<body>
<form method="POST" action="traitement.php">
<p>
<label for="nom">Nom :</label>
<input type="text" name="nom" id="nom" />
<br></br>
<label for="prenom">Prenom :</label>
<input type="text" name="prenom" id="prenom" />
<br></br>
<label for="adresse">Adresse :</label>
<input type="text" name="adresse" id="adresse" />
<br></br>
<label for="ville">Ville :</label>
<input type="text" name="ville" id="ville" />
<br></br>
<label for="Nombre d'enfant">Nombre d'enfant :</label>
<FORM>
<SELECT name="Nombre d'enfant" size="1">
<OPTION>1
<OPTION>2
<OPTION>3
<OPTION>4
<OPTION>5
</SELECT>
</FORM>
<br></br>
<FORM>
<INPUT TYPE="submit" NAME="submit" VALUE=" Envoyer ">
</FORM>
<br></br>
</p>
</form>
</body>
</html>
Enregistrer les données de la liste déroulante dans la BDD.
Rien
Re,
<form>
.Ce que tu fais :
<SELECT name="Nombre d'enfant" size="1">
<OPTION>1
<OPTION>2
<OPTION>3
<OPTION>4
<OPTION>5
</SELECT>
Ce que tu dois faire :
<select name="nombre_enfant">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
Ton soucis fais partie des bases du HTML, avant de continuer je te recommandes de suivre une petite formation HTML pour que tu comprennes tes erreures.
Oui mais si ton html est faux t'aura du mal à obtenir de résultat en PHP..
la réponse que je t'ai donné est juste, pour récupérer le select suffit de faire $_POST['nombre_enfant']
Comme te l'as précisé shinix, tu as des <form>
dans ton <form>
. Déjà pas bon.
Ensuite tu as modifié le select comme il l'avait dit aussi ?
Fais attention à la casse !
<select name="Nombre_enfant">
</select>
$nombre_enfant =htmlentities(trim($_POST['nombre_enfant']));
Donc modifie l'un des deux pour qu'il concorde.
Ensuite je te conseil de revoir ton code php. Dans ta préparation de requête des fois du as : ":var" et d'autre "var".
VALUES (:nom, [..], variable) //Sans les ":"
Donc refait un tour.
Le mieux a faire avant de test les INSERT, c'est de tester si tu as bien toutes les données , donc avant ton $bdd = new PDO...
,tu peux faire un
die(print_r(array("nom" => $nom, "prenom"=> $prenom, "adresse" => $adresse, "ville" => $ville, "nombre_enfant" => $nombre_enfant, "nomenfant" => $nomenfant)));
Et voir si les informations sont celles soumises.
Cool. Selectionnes maintenant la/les réponses qui t'ont aidés afin de passer le sujet en résolu !
C'est ce que j'ai modifié, j'ai commencer par HTML en formation et ça peut aller mais c'est pour l'enregistrement des données en PHP que j'ai du mal surtout avec une liste à plusieurs choix.
C'est ce que j'ai fais dans mon traitement.php, le voici :
<?php
error_reporting(E_ALL);
if(isset($_POST['submit']))
{
$nom =htmlentities(trim($_POST['nom']));
$prenom =htmlentities(trim($_POST['prenom']));
$adresse =htmlentities(trim($_POST['adresse']));
$ville =htmlentities(trim($_POST['ville']));
$nombreenfant =htmlentities(trim($_POST['nombreenfant']));
$nomenfant =htmlentities(trim($_POST['nomenfant']));
$bdd = new PDO('mysql:host=localhost;dbname=phplogin;charset=utf8', 'root', '');
try
{
$bdd = new PDO('mysql:host=localhost;dbname=phplogin;charset=utf8', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
mysql_select_db('phplogin');
$req = mysql_query("SELECT * FROM inscription WHERE nom='$nom', prenom='$prenom', adresse='$adresse', ville='$ville', nombreenfant=$nombreenfant, nomenfant='$nomenfant'");
$req = $bdd->prepare("INSERT INTO inscription (nom, prenom, adresse, ville, nombreenfant, nomenfant) VALUES (:nom, :prenom, :adresse, :ville, nombreenfant, nomenfant)");
$req->execute(array("nom" => $nom, "prenom"=> $prenom, "adresse" => $adresse, "ville" => $ville, "nombreenfant" => $nombreenfant, "nomenfant" => $nomenfant));
}
?>
Merci d'avance
Je comprends pas bien pour récupérer le SELECT ce qu'il faut faire. Je vous remet mes 2 codes inscriptions.php et traitement.php.
<html>
<?php
error_reporting(E_ALL);
if(isset($_POST['submit']))
{
$bdd = new PDO('mysql:host=localhost;dbname=phplogin;charset=utf8', 'root', '');
try
{
$bdd = new PDO('mysql:host=localhost;dbname=phplogin;charset=utf8', 'root', '');
$req = "INSERT INTO inscription (nom, prenom, adresse, ville, nombre_enfant, nomenfant)";
$req .= " VALUES ";
//il te manquait :nombreenfant, :nomenfant
$req .= "(:nom, :prenom, :adresse, :ville, :nombreenfant, :nomenfant)";
$stmt = $bdd->prepare($req);
$stmt->bindValue('nom',htmlentities(trim($_POST['nom'])),PDO::PARAM_STR);
$stmt->bindValue('prenom',htmlentities(trim($_POST['prenom'])),PDO::PARAM_STR);
$stmt->bindValue('adresse',htmlentities(trim($_POST['adresse'])),PDO::PARAM_STR);
$stmt->bindValue('nombre_enfant',htmlentities(trim($_POST['nombre_enfant'])),PDO::PARAM_STR);
$stmt->bindValue('nomenfant',htmlentities(trim($_POST['nomenfant'])),PDO::PARAM_STR);
if (!$stmt->execute()) {
throw new PDOException('insertion impossible');
}
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
}
?>
<head>
<meta charset="utf-8" />
</head>
<body>
<form method="POST" action="traitement.php">
<p>
<label for="nom">Nom :</label>
<input type="text" name="nom" id="nom" />
<br></br>
<label for="prenom">Prenom :</label>
<input type="text" name="prenom" id="prenom" />
<br></br>
<label for="adresse">Adresse :</label>
<input type="text" name="adresse" id="adresse" />
<br></br>
<label for="ville">Ville :</label>
<input type="text" name="ville" id="ville" />
<br></br>
<label for="Nombre d'enfant">Nombre d'enfant :</label>
<select name="Nombre_enfant">
<option value="1">1</option>
<option value="1">2</option>
<option value="1">3</option>
<option value="1">4</option>
<option value="1">5</option>
</select>
<br></br>
<label for="nomenfant">Nom de l'enfant :</label>
<input type="text" name="nomenfant" id="nomenfant" />
<br></br>
<INPUT TYPE="submit" NAME="submit" VALUE=" Envoyer ">
</p>
</form>
</body>
</html>
<?php
error_reporting(E_ALL);
if(isset($_POST['submit']))
{
$nom =htmlentities(trim($_POST['nom']));
$prenom =htmlentities(trim($_POST['prenom']));
$adresse =htmlentities(trim($_POST['adresse']));
$ville =htmlentities(trim($_POST['ville']));
$nombre_enfant =htmlentities(trim($_POST['nombre_enfant']));
$nomenfant =htmlentities(trim($_POST['nomenfant']));
$bdd = new PDO('mysql:host=localhost;dbname=phplogin;charset=utf8', 'root', '');
try
{
$bdd = new PDO('mysql:host=localhost;dbname=phplogin;charset=utf8', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
mysql_select_db('phplogin');
$req = mysql_query("SELECT * FROM inscription WHERE nom='$nom', prenom='$prenom', adresse='$adresse', ville='$ville', nombre_enfant=$nombre_enfant, nomenfant='$nomenfant'");
$req = $bdd->prepare("INSERT INTO inscription (nom, prenom, adresse, ville, nombre_enfant, nomenfant) VALUES (:nom, :prenom, :adresse, :ville, nombre_enfant, nomenfant)");
$req->execute(array("nom" => $nom, "prenom"=> $prenom, "adresse" => $adresse, "ville" => $ville, "nombre_enfant" => $nombre_enfant, "nomenfant" => $nomenfant));
}
?>