Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

<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, pseudo, motdepasse, email)";
    $req .= " VALUES ";

    $req .= "(:nom, :prenom, :adresse, :ville, :nombreenfant, :nomenfant, :pseudo, :motdepasse, :email)";
    $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);
    $stmt->bindValue('pseudo',htmlentities(trim($_POST['pseudo'])),PDO::PARAM_STR);
    $stmt->bindValue('motdepasse',htmlentities(trim($_POST['motdepasse'])),PDO::PARAM_STR);
    $stmt->bindValue('email',htmlentities(trim($_POST['email'])),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=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>

<?php

$nombre_enfant = $_POST['nombre_enfant'];
while ($nombre_enfant =! 0){
echo 'nom enfant'

            $nombre_enfant = $nombre_enfant-1;

      }   

?>

   <br></br>

   <label for="nomenfant">Nom de l'enfant :</label>
   <input type="text" name="nomenfant" id="nomenfant" />

   <br></br>

   <label for="pseudo">Pseudo :</label>
   <input type="text" name="pseudo" id="pseudo" />

   <br></br>

   <label for="motdepasse">Mot de passe :</label>
   <input type="text" name="motdepasse" id="motdepasse" />

     <br></br>

    <label for="email">E-Mail :</label>
   <input type="text" name="email" id="email" /> 

   <br></br>

    <INPUT TYPE="submit" NAME="submit" VALUE=" Envoyer ">

</p>
</form>

</body>

</html>



### Ce que je veux

Si l'on choisit 2 enfant, il y aura 2 lignes de nom enfant.

### Ce que j'obtiens

Une erreur : Parse error: syntax error, unexpected '$nombre_enfant' (T_VARIABLE), expecting ',' or ';' in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\Johann\inscription.php on line 78

15 réponses


Il manque un ; à la ligne 77.

L'erruer est plutot claire : expecting ',' or ';' in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\Johann\inscription.php on line 78

lecjoh
Auteur

Merci mais une fois que je mets le ;, ça me met ça : Undefined index: nombre_enfant in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\Johann\inscription.php on line 74 et ça inscrit nomenfant * 1000

Il ne dois pas y avoir de champs nombre_enfant dans ton formulaire.
Tu essais de trouver la solution et de comprendre le script ou tu colle le code en espérant avoir une réponse toute machée ?

En même temps c'est le 3ème topics qu'il créé pour le même bout de code avec à chaque fois des erreurs d'inattentions...

D'ailleurs c'est quoi ça, ce code est censé donner quelque chose de logique ? :

$nombre_enfant = $_POST['nombre_enfant'];
while ($nombre_enfant =! 0){
    echo 'nom enfant'
     $nombre_enfant = $nombre_enfant-1;
}   

Et si tu veux (encore) de l'aide met au moins en page ton code dans le topic parce que la on comprendre rien

lecjoh
Auteur

Pour moi je pensais que si nombre_enfant =! 0 ça aurait fait une boucle. J'ai poster mon code sur ma première publication de ce post.

Pourquoi tu veux boucler sur $nombre_enfant exactement ?

lecjoh
Auteur

Bonjour, bah je sais pas trop c'est parce que je voudrais que si l'on choisit 2 enfant il y a 2 ligne de nom enfant qui s'affiche pour les enregistrer dans la table.
Merci d'avance

tu vas devoir faire ça avec du js pas avec du php

tu vas devoir faire ça avec du js pas avec du php

Tout dépend comment le truc est foutu, c'est tout à fait faisable de boucler sur plusieurs éléments et de faire un INSERT dans la base, en PHP.

je parler d'afficher des inputs suivant le nb d'enfants sans changer/raffraichir la page

Ah autant pour moi, oui avec jQuery c'est faisable facilement ça !

lecjoh
Auteur

Okok merci les gars, je vais mater des tutos pour jQuery.

lecjoh
Auteur

Je dois utiliser le fonction Hide et Show ?
Merci d'avance

oui ou bien avec du css en plus .addClass() et .removeClass()

Merci de passer ton sujet en résolut.