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

Résolu/Fermé
feura69
Messages postés
5
Date d'inscription
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
4 décembre 2013
- Modifié par feura69 le 4/12/2013 à 15:04
feura69
Messages postés
5
Date d'inscription
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
4 décembre 2013
- 4 déc. 2013 à 22:19
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

3 réponses

Utilisateur anonyme
4 déc. 2013 à 17:06
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
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
4 décembre 2013

4 déc. 2013 à 21:53
Super, merci pour ton aide ! Je teste ça tout de suite :)
0
feura69
Messages postés
5
Date d'inscription
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
4 décembre 2013

4 déc. 2013 à 22:09
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
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
4 décembre 2013

4 déc. 2013 à 22:13
Dans ma BDD, je qualifie les lignes des cases à cocher en INT ou VARCHAR ?
0
feura69
Messages postés
5
Date d'inscription
mercredi 4 décembre 2013
Statut
Membre
Dernière intervention
4 décembre 2013

4 déc. 2013 à 22:19
C'est bon ça marche nikel !!! (il fallait juste que j'enlève les $_POST dans execute(array())

Merci beaucoup !!!
0