choix multiple du checkbox
Salut à tous
je suis debutant en php.
j'ai un probleme au niveau de la recuperation des resultats des checkbox via un formulaire dans ma base de donnée.
mon probleme consiste: seulement la valeur du dernier checkbox est recuperée.
voila le code
index.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| <?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("produits", $con);
$sql="SELECT * FROM prodchoisi ";
$resultatsRequete = mysql_query($sql,$con);
/* affichage des noms des champs, selon le résultat renvoyé par MySQL + les vrai
// noms des en-têtes */
$nombreDeChamps = mysql_num_fields($resultatsRequete);
for ($i = 1; $i < $nombreDeChamps; $i++) {
$nom_colonne = mysql_field_name($resultatsRequete, $i);
if (!empty($champsVeritables)) { // si on a fait une jointure
$nom_colonne .= "<br />({$champsVeritables[$i][0]})";
/* emphase de la table : décommentez la ligne suivante */
//$nom_colonne = preg_replace("[([\w]+)\.]", "<em title=\"nom de la table dont
// le champ fait partie\">$1</em>.", $nom_colonne);
/* autre mise en relief : que la partie différente du nom du champ (après le
// préfixe comprenant un underscore)
/* marche pour dotclear et wordpress, entres autres systèmes */
$nom_colonne = preg_replace("[(.+)_(.+)\.([\w]+)]",
"$1_<em>$2</em>.$3", $nom_colonne);
}
?>
<table align="center" border="0">
<tr><td><input type="checkbox" name="choix[]" value="<?php echo $nom_colonne ?>" ></td><td><th scope=\"col\"><?php echo $nom_colonne ?></th></td></tr></table>
<?php
}
echo "\t</tr>\n";
// FIN affichage des intitulés de champs
mysql_close($con);
?>
<table align="center" border="0">
<tr>
<td colspan="2" align="center"><input type="submit" value="Sauvegarder"></td>
</tr>
?> |
insert.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <?php
$con1 = mysql_connect("localhost","root","",true);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("produits", $con1);
for($i = 0, $c = count($_POST["choix"]); $i < $c; $i++) {
if(isset($_POST["choix"][$i]))
global $prenom;
$prenom=$_POST["choix"][$i];
$sql1="INSERT INTO prodchoisi ($prenom) VALUES ('oui') ";
echo $prenom;
}
if (!mysql_query($sql1,$con1))
{
die('Error: ' . mysql_error());
}
echo "le choix est ajouté à la table prodchoisi";
mysql_close($con1)
?> |
j'explique encore: je veux cocher plusieurs checkbox à la fois,j'aime envoyer la chaine "oui" à la base en cas ou la case est coché,mais le probleme est qu'il ne prend en consideration que la derniere case .
merci de m'aider