enregistré des checkbox avec msql dans une base

Sangare
Invité n'ayant pas de compte PHPfrance

04 déc. 2020, 18:10

bonjours! j ai creé un formulaire avec des checkbox pour recuperer des informations sur les matiers(mathematique,français etc) et lorsque je veux enregistré ces valeurs il n y a que le dernier element du tableau matier qui est enregistré. j utilise le mysql
merci de votre aide
voici le code de recuperation

<?php
//Connexion a la base de donnee au prealable
include'connexion.php';
//parent
$nomparent=$_POST['nomparent'];
$contact1 =$_POST['contacte1'];
$contact2 =$_POST['contacte2'];
$ville =$_POST['ville'];
$secteur =$_POST['secteur'];
$email =$_POST['email'];
$nombreeleve =$_POST['nombreeleve'];
//eleve
$nomeleve =$_POST['nomeleve'];
$etablissement=$_POST['etablissement'];
$classe =$_POST['classe'];

//matier
var_dump($_POST['matier']);

//accepte
$accept =$_POST['accept'];


#Code de texte si les champs sont vides
foreach($_POST['matier'] as $matier){

}
//$tab[][]=$matier;
if($accept=="ok"){
if(empty($nomparent) or (empty($contact1) and empty($contact2)) or empty($ville) or empty($secteur) or empty($email) or empty($nombreeleve) or empty($nomeleve) or empty($etablissement) or empty($classe) or empty($matier)){
echo'<h2>remplir tous les champs</h2>';
include'formcontrat.php';

}
else{
$sql_contrat = "INSERT INTO contrat(idcontrat,
contractant,
contact1,
contact2,
ville,
secteur,
email,
nombreeleve,
nomelevecontrat,
etablissement,
classe,
matier

)

VALUES( '',

'".$nomparent."',
'".$contact1."',
'".$contact2."',
'".$ville."',
'".$secteur."',
'".$email."',
'".$nombreeleve."',
'".$nomeleve."',
'".$etablissement."',
'".$classe."',
'".$matier."'

)";

mysqli_query($base, $sql_contrat) or die('Erreur SQL!'.$sql_contrat."<br>".mysqli_error($base));
//Recuperation de l'idcontrat
$id_inser = mysqli_insert_id($base);





include'formcontrat.php';

echo "</br>";

//On se deconnecte de la base afin de terminer l'operation
mysqli_close($base);


}
}
else{
echo'<h2>remplir tous les champs</h2>';
include'formcontrat.php';
}

?>

Avatar du membre
Mammouth du PHP | 1564 Messages

05 déc. 2020, 00:46

tu as une piste:
foreach($_POST['matier'] as $matier){

}
pourquoi ce code n'est pas utilisé ?

Donne ton code HTML stp pour savoir comment est utilisé l'élément checkbox

Dit moi comment tu veux l'insérer dans la base de données stp ? si il coche "mathématique" tu l'insère dans la colonne "mathematique" ? en mettant la colonne à "1" ?