Bonjour à tous, je travaille sur un formulaire et lorsque je dois enregistrer les informations dans ma BDD, j'ai un problème qui apparait! En fait, si j'ai 2 champs textes dans ce formulaire ou un champ case à cocher avec + de 2 possibilités à cocher, et lorsque je clique sur "envoyer", seul la dernière informations de chaque champ est enregistré au lieu de la totalité des informations!
Pour ça, j'ai donné un indice "i" à chacun de mes champs pour récupérer chaque valeurs qui s'affichent très bien dans un var_dump mais qui ne s'enregistre pas dans ma BDD (me retourne un résultat vide)!
Voici la structure de ma table:
id_reponse nom_reponse reponse_email reponse_select reponse_bouton reponse_case 1 toto titi titi.toto@hotmail.fr Enseignant Oui Stage Cours toto correspond au champ "Nom" et titi au champ "Prenom" qui sont tous 2 des input texte qui ont le même nom (nom_reponse)! pareil pour ici, j'ai 2 cases à cocher!
Et le code de traitement de ma réponse:
J'ai essayé d'inclure ma requête SQL dans mon "for" car j'arrive à afficher les valeurs rentrées dans mes champs avec les echo mais ils n'apparaissent pas dans la requête.
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 <?php echo '<pre>'; var_dump($_POST); echo '</pre>'; $serveur = "localhost"; $base = "xxxx"; $user = "root"; $pass = "xxxx"; $mysqli = new mysqli($serveur, $user, $pass, $base); $mysqli->set_charset("utf8"); if ($mysqli->connect_error) { die('Erreur de connexion ('.$mysqli->connect_errno.')'. $mysqli->connect_error); } else { //echo 'connexion réussie : '.$mysqli->host_info .'\n'; } for($i=0; $i<count($_POST); $i++){ $reponse[$i] = $_POST['nom_reponse'][$i]; $Reponse = $reponse[$i]; echo $Reponse; $email = $mysqli->real_escape_string($_POST['reponse_email'][$i]); $select = $mysqli->real_escape_string($_POST['reponse_select'][$i]); $radio = $mysqli->real_escape_string($_POST['reponse_radio'][$i]); $case = $mysqli->real_escape_string($_POST['reponse_case'][$i]); /*for($i=0; $i<count($_POST); $i++){ echo $_POST['nom_reponse'][$i].'<br/>'; //echo $_POST['reponse_case'][$i].'<br/>'; echo $reponse[$i].'<br/>'.'<br/>'; $Reponse = $reponse[$i]; echo $Reponse.'<br/>'; }*/ $sql = ' INSERT INTO `reponse`( `nom_reponse`, `reponse_email`, `reponse_select`, `reponse_radio`, `reponse_case` ) VALUES ( \''.$reponse[$i].'\', \''.$email.'\', \''.$select.'\', \''.$radio.'\', \''.$case.'\' ) '; echo $Reponse; } $result = $mysqli->query($sql); //echo $_POST['nom_test']; echo $sql; $mysqli->close(); //header("Location: page_form.php"); ?>
J'aurai besoin d'un petit coup de pouce pour comprendre pourquoi dans mes echo j'affiche ces valeurs mais pas dans ma requête. Je vous en serai reconnaissant.
Merci et bonne journée.
Cordialement.
Partager