Je souhaite réaliser une liste de naissance dans laquelle la famille peut choisir un cadeau en sélectionnant une checkbox et en indiquant son nom (2 seuls champs obligatoires).
Malheureusement, je n'arrive pas à mettre à jour la colonne :"nom" dans ma base SQL. Celui-ci correspond au champ "donateur" du formulaire ci-dessous.
Ce champ est un tableau (à tord ou à raison) parce que le champ est reproduit plusieurs fois (autant de fois que de cadeau).
C'est a l'interieur de ce tableau (via un foreach que j'ai placé à différents endroits puis retiré car je ne l'ai utilisé que pour vérifier que la variable existait et passé du formulaire initial à celui de traitement) que je récupére le nom du donateur mais je ne parviens pas à l'isoler pour le transmettre a la base sql.
Vos idées, remarques, conseils sont les bienvenues.
D'avance merci, car ce souci est pire que les nouveaux nés pour le sommeil
Voici le code du formulaire :
Code : Tout sélectionner
<form name="liste" method="post" action="reservation_liste.php">
<table class="bordure" >
<tr>
<td width="30%">
</td>
<td width="10%">
</td>
<td colspan="2" width="40%">
<br/><br/><br/>
Inscrivez votre nom, ci-dessous, pour éviter les cadeaux doublons :
</td>
</tr>
<!-- verification des cadeaux présents et sélectionés dans la BDD -->
<?php
$bd=connect_bd();
if($bd<>0)
$query = "SELECT photo, quantite, cadeau, nom FROM alicia";
$trouve = mysql_query($query);
//On classe les réponses dans un tableau.
while ($donnees = mysql_fetch_array($trouve))
{
$lien = $donnees["photo"];
?>
<!-- fin de verification des cadeaux présents et sélectionnés dans la BDD -->
<tr>
<td>
<?php
print ("<img src=\"$lien\" width=\"200\" height=\"200\" align=\"right\"/>");
?>
</td>
<td width="10%" align="center">
<?php
if (($donnees["quantite"])==0)
echo "<input name=\"quantite\" type=\"checkbox\" value=\"".$donnees["cadeau"]."\"/>";
else
echo "";
?>
</td>
<td width="30%">
<?php echo $donnees["cadeau"];?>
</td>
<td width="30%">
<?php
if (empty($donnees['nom']))
echo "<input name=\"donateur[]\" type=\"text\" />";
else
echo $donnees['nom'];
?>
</td>
</tr>
<?php
}
mysql_close();
?>
<!-- fin de liste de choix de cadeaux-->
Code : Tout sélectionner
$date_enregistrement = gmDate("Y-m-d\nH:i:s\n");
$quantite=$_POST['quantite'];
$donateur=$_POST['donateur'];
if ($_POST['valider']=="ok")
{
if (empty($quantite) || empty($donateur))
{
if($quantite=="") print ("<div class=\"blanc\"><br/><br/><strong>Vous n'avez rien sélectionné ? <br/><br/>Cliquez sur précédent dans votre navigateur, ou sur le bouton, ci-dessous, pour revenir sur la page de liste de naissance</strong><br/><br/><a href=\"liste.php\"><img align=\"center\" src=\"http://www.alicia/images/bouton_orange.gif\"></a></strong></div>");
if ($donateur=="") print ("<div class=\"blanc\"><br/><br/><strong>Vous n'avez pas indiqué votre nom ?<br/><br/>Cliquez sur précédent dans votre navigateur, ou sur le bouton, ci-dessous, pour revenir sur la page de liste de naissance.</strong><br/><br/><a href=\"liste.php\"><img text-align=\"center\" src=\"http://www.alicia/images/bouton_orange.gif\"></a></strong></div>");
}
else
{
//connection à la base de données
$bd=connect_bd();
if($bd<>0)
{
//insertion des données
$selectcadeau = "UPDATE alicia SET quantite=1, nom='$donateur', mail='$mail', date_enregistrement='$date_enregistrement' WHERE cadeau='$quantite'";
$trans_cadeau = mysql_query($selectcadeau,$bd); // Requête SQL
if((!$trans_cadeau))
{
die('impossible d\'exécuter la requete :'.mysql_error());
}
else
{
echo "<div class=\"blanc\"><br /><br /><strong>Merci ".$donateur.".<br/>Si vous avez renseigné une adresse email, vous allez recevoir un message de confirmation à l’adresse communiquée ".$mail.".<br /><br />";
echo "<br /><br />Pour revenir sur la page d´accueil du site d'Alicia, <a href=\"http://www.alicia\">cliquez ici</a><br /><br /><br />A bientôt<br /><br /><br /></strong></div>";
mail($mail, $sujet1, $html1, $header);
mail('alicia@alicia', $sujet, $html, $header);
}
}
deconnect_bd($bd);
}
}
else
{
echo '<div>Echec de l’enregistrement, désolé</div>';
require("liste.php");
}
?>