Stocker les valeurs des checkboxs d'un formulaire dans une base de données

KDJB -  
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   - 20 mars 2021 à 23:28
Bonjour, je n'arrive pas à stocker les valeurs de mes ceckboxs dans ma base de données voilà le code besoin d'aide svp !!!
<?php
	#code de truc. php
	 $pdo= new PDO('mysql:dbname=truc;host=localhost','root','');
   $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   if (isset($_POST['valider'])) {
   	$NOM=$_POST['nom'];
   	$APPAREIL=$_POST['appareil'];
   	$req=$pdo->prepare("INSERT INTO nouveau_truc VALUES (?)");
   	$req->execute([$NOM,array(implode("/", $APPAREIL))]);
   }
 ?>
 <!DOCTYPE html>
<html>
<head>
	<title>form</title>
</head>
<body>
	<form method="POST" action="truc.php">
	<input type="text" name="nom" placeholder="entrer votre nom">
	<input type="checkbox" name="appareil[]" value="portable">portable
	<input type="checkbox" name="appareil[]" value="tablette">tablette
	<input type="checkbox" name="appareil[]" value="laptop">laptop
	<input type="checkbox" name="appareil[]" value="desktop">desktop
	<input type="submit" name="valider" value="valider">
</body>
</html>




Configuration: Windows / Firefox 86.0
A voir également:

2 réponses

jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
Bonjour,
Tu n'as mis qu'un seul "?" dans ta requête.... et tu essayes d'insérer deux valeurs .. le nom et les checkboxes..
De plus, tu as mis un "array" .. sauf que tu ne peux insérer que des STRING


Pour pouvoir trouver les soucis par toi même, à l'avenir, applique ce qui est indiqué ici
https://codes-sources.commentcamarche.sitesdebloques.org/faq/11288-les-balises-de-code
(Ne pas oublier d'activier l'affichage des erreurs php ET de placer chaque requête dans un bloc TRY/CATCH ( en plus du try/carch de la connexion bien entendu ! )

0
KDJB
 
Comment je peux inserer alors les array les string ?
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
$req->execute([$NOM,array(implode("/", $APPAREIL))]);

Dans cette ligne de code, il suffit que tu enlèves le mot array
0