Envoyer l'état des checkbox à la BDD

Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

Malgré des heures passées à suivre des tutos sur l'envoi de l'état des checkbox dans ma BDD SQL, je ne parviens toujours pas à ma fin.

Ma page :

J'ai 4 sections type Fieldset qui contiennent chacun 6 checkbox, 1 menu déroulant et un champ texte.

Ma BDD:

1 champ par checkbox. La valeur par défaut est NULL.

Mon code :


if($_POST['envoi1']){
$SMARTJOG - $_POST['SMARTJOG'];
foreach ($SMARTJOG as $smart1) {

mysql_query("UPDATE INTO etats_films VALUES('$smart1')")or exit(mysql_error());

}

}
<form method="POST" action="modif-etat-film.php">
<input type="checkbox" id="checkbox-smartjog-1" name="SMARTJOG[]" class="regular-checkbox big-checkbox" />VO  <label for="checkbox-smartjog-1"></label>
<input type="checkbox" id="checkbox-smartjog-2" name="SMARTJOG[]" class="regular-checkbox big-checkbox" />VOSTF  <label for="checkbox-smartjog-2"></label>
<input type="checkbox" id="checkbox-smartjog-3" name="SMARTJOG[]" class="regular-checkbox big-checkbox" />3D  <label for="checkbox-smartjog-3"></label>
<input type="checkbox" id="checkbox-smartjog-4" name="SMARTJOG[]" class="regular-checkbox big-checkbox" />SME  <label for="checkbox-smartjog-4"></label>
<input type="checkbox" id="checkbox-smartjog-5" name="SMARTJOG[]" class="regular-checkbox big-checkbox" />2D  <label for="checkbox-smartjog-5"></label>
<input type="checkbox" id="checkbox-smartjog-6" name="SMARTJOG[]" class="regular-checkbox big-checkbox" />VI  <label for="checkbox-smartjog-6"></label>

<br>

<HR size=2 align=center width="100%">

<input type="text" id="date-smartjog" placeholder="DatePicker" size="10" maxlength="10">
<input type="submit" value="OK">
</form>


envoi1 est le name de mon bouton submit

$SMARTJOG est le name de mes checkbox

Quel qu'un d'aguéri dans ce domaine peut-il m'éclairer ?

Merci

Romain
A voir également:

6 réponses

Utilisateur anonyme
 
Up !! :)
0
Utilisateur anonyme
 
Up!!
0
ThEBiShOp Messages postés 9307 Statut Contributeur 1 566
 
Salut,

tu fais ça :

$SMARTJOG - $_POST['SMARTJOG'];

Tu voulais pas plutôt faire ça :

$SMARTJOG = $_POST['SMARTJOG'];

La syntaxe de ta requête n'est pas bonne non plus, tu mélanges l'insert et l'update
0
Utilisateur anonyme
 
Salut,

Merci pour ta réponse.
En effet, pour le égal c'est une erreur de ma part.

En revanche pour l'UPDATE, je n'utilises pas l'INSERT car ce sont des checkbox qui seront amenés à être modifiés de temps à autres.
Mon erreur actuelle est celle-ci :
Column count doesn't match value count at row 1
Je pense que c'est dans ma requête que ça berdouille.

Je bloque lorsque je dois renseigner mes "VALUES".
Je dois toutes les déclarer comme ça avant peut-être ?
$etat_smartjog_vf=$_POST['etat_smartjog_vf'];
$etat_smartjog_vo=$_POST['etat_smartjog_vo'];
0
ThEBiShOp Messages postés 9307 Statut Contributeur 1 566
 
Non, tu fais un mix entre la syntaxe de l'update et la syntaxe de l'insert, donc la syntaxe est fausse.

Regarde : https://www.w3schools.com/sql/sql_update.asp
0
Utilisateur anonyme
 
Ah okay!!
Bon je pense que je vais faire simple pour le moment et que je vais rester en INSERT.
Et donc pour mes VALUES il faut que je les déclares ?
0
ThEBiShOp Messages postés 9307 Statut Contributeur 1 566
 
avec un insert, à chaque fois tu vas te retrouver avec une nouvelle ligne dans ta base de données, si tu veux juste modifier un état, l'update est le bon choix, il suffit juste de mettre la bonne syntaxe et pas une syntaxe sortie de ta poche ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
J'ai réessayé d'une autre manière, toujours sans résultat. (Mais aucune erreur renvoyée)

Ici je stocke mes values dans un array :
<?php

$chkbox = array('etat_smartjog_vo', 'etat_smartjog_vf', 'etat_smartjog_3d');
if(isset($_POST['envoi']))
{
foreach($chkbox as $selection )
{ if(in_array($selection, $SMARTJOG))
{ $values[ $selection ] = 1; }
else
{ $values[ $selection ] = 0; }
} // end of foreach.
$sql = "INSERT INTO etats_films (etat_smartjog_vo, etat_smartjog_vf, etat_smartjog_3d) VALUES({$values['etat_smartjog_vo']}, {$values['etat_smartjog_vf']}, {$values['etat_smartjog_3d']})"or die(mysql_error());
mysql_query($sql);
}
?>


Des idées sur ce qui peut bloquer ?
0
Utilisateur anonyme
 
Up !! :)
0
Utilisateur anonyme
 
Up !!
0
Utilisateur anonyme
 
personne..?
0