Bonjour
Je vous explique mon problème (je précise que je débute en php) :
J'ai une base de données contenant des formations :
à partir de celle-ci, je génère un formulaire avec un bouton radio "activé" (qui a une value"oui") et un bouton "désactivé" (qui a une value "non") pour chaque formation.
Jusque là tout va bien, voilà le résultat :
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 <form action="" method="post"> <p> <?php /* // Mon formulaire généré depuis ma base de données avec les "checked" reliés à la base de données */ $radio[] = array(); try { $bdd = new PDO('mysql:host=localhost;dbname=autoform;charset=utf8', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $reponse = $bdd->query('SELECT * FROM formations'); while ($donnees = $reponse->fetch()) { ?> <?php $radio[$donnees['forma_ID']] = $donnees['forma_ID'] ?> <section"> <div> <a href="no-sidebar.html"></a> <div> <p><strong><?php echo $donnees['nom_form']; ?></strong><br/> <input type="radio" name="<?php echo 'radio['.$donnees['forma_ID'].']'; ?>" value="oui" <?php if($donnees['active'] == "oui"){echo 'checked';}else{echo "";} ?>>Activé <input type="radio" name="<?php echo 'radio['.$donnees['forma_ID'].']'; ?>" value="non" <?php if($donnees['active'] == "non"){echo 'checked';}else{echo "";} ?>>Désactivé </p> </div> </div> </section> <?php } $reponse->closeCursor(); ?> <input type="submit" value="Envoyer" /> </p> </form>
Là où ça se complique c'est quand je veux modifier la valeur du mon champ "active" via ce formulaire.
Je pense que l'erreur vient de la syntaxe de ma requête mais je n'en suis pas certain.
Voici mon code :
Pour info, le name de mes input radio correspondent bien à l'ID de ma formation (radio[1],radio[2], etc...).
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 <?php /* Le traitement du formulaire qui devrait récupérer et UPDATE chaque champs "active" de ma bdd par la value du input radio ("oui" ou "non"). */ try { $bdd = new PDO('mysql:host=localhost;dbname=autoform;charset=utf8', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } for ($i = 1; $i <= sizeof($radio); $i++) { $bdd->exec('UPDATE `formations` SET `active`= "'.$_POST['radio['.$radio[$donnees['forma_ID']].']".'].'" WHERE'.$donnees['forma_ID'].' = '.$i); } ?>
Voilà, j'espère que j'ai été claire :/ et que vous pourrez m'aider.
Merci!!!
Partager