PHP/SQL Comment enregistrer les cases à cocher dans la BDD ?

Résolu
feura69 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
feura69 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je suis en train de construire mon premier formulaire avec enregistrement dans ma base de donnée mySQL, et je bloque lors de l'enregistrement des cases à cocher.

Les cases cochées s'enregistrent bien dans la base avec la valeur "ON".
Cependant, les cases non-cochées ne renvoient rien et provoquent un bug de php.

Je souhaiterais que les cases cochées renvoient ON et les non-cochées OFF (ou bien 1 et 0)

Pourriez-vous m'aider s'il vous plait ?

Voici mon code :

page du formulaire
<form method="post" action="inscription_confirmation.php">
<input type="checkbox" name="optionA" id="optionA" /> <label for="optionA">optionA</label></br>
<input type="checkbox" name="optionB" id="optionB" /> <label for="optionB">optionB</label></br>


page de l'enregistrement du formulaire
$req = $bdd->prepare('INSERT INTO inscriptions (optionA, optionB) VALUES(?, ?)');
$req->execute(array($_POST['optionA'], $_POST['optionB']));
?>

BDD SQL
colonne 1 : optionA
colonne 2 : optionB


Merci à tous
Raph
A voir également:

3 réponses

Utilisateur anonyme
 
Bonjour

J'aime bien l'expression provoquent un bug de php.
Non, il n'y a pas de bug dans php, c'est dans ton script qu'il y en a un ^^

Tu n'as qu'à créer deux variables, disons $opta et $optb auxquelles tu vas donner la valeur 1 si la variable $_POST correspondante existe (la case a été cochée), et 0 sinon.

$opta= isset($_POST['optionA']) ? 1 : 0;
$optb= isset($_POST['optionB']) ? 1 : 0;
$req = $bdd->prepare('INSERT INTO inscriptions (optionA, optionB) VALUES(?, ?)'); 
$req->execute(array($opta,$optb));
1
feura69 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Super, merci pour ton aide ! Je teste ça tout de suite :)
0
feura69 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Grrrr... ca ne marche pas, il me dit "Undefined index" pour les deux variables.

J'ai même essayé de renommer les deux cases dans la page du formulaire par le nom des variables mais rien n'y fait... =/

Une idée ?
0
feura69 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Dans ma BDD, je qualifie les lignes des cases à cocher en INT ou VARCHAR ?
0
feura69 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
C'est bon ça marche nikel !!! (il fallait juste que j'enlève les $_POST dans execute(array())

Merci beaucoup !!!
0