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 :
Nom : bdd.PNG
Affichages : 1263
Taille : 15,5 Ko

à 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.

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>
Jusque là tout va bien, voilà le résultat :

Nom : admin.PNG
Affichages : 1248
Taille : 49,7 Ko

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 :

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);
 
 
}
?>
Pour info, le name de mes input radio correspondent bien à l'ID de ma formation (radio[1],radio[2], etc...).

Voilà, j'espère que j'ai été claire :/ et que vous pourrez m'aider.

Merci!!!