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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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