Bonjour,
Comment récupéré un Boolean via un checkbox ?
Merci
j'aimerais le faire en php enfaîte pour envoyé un boolean or je suis bloqué dans mon code car l’insertion ne s'effectue pas =s
<input type="checkbox" name="promo" value="promo"> En promo ?
action php :
<?php
require("session.class.php");
$Session = new Session();
//nom :
$nom = $_POST'nom'] ;
//prix
$prix = $_POST'prix'] ;
//image
$image = $_POST'image'];
//description
$description = $_POST'description'] ;
//quantiter
$quantiter = $_POST'quantiter'] ;
//id_consoles
$id_consoles = $_POST'id_consoles'] ;
//id_types
$id_types = $_POST'id_types'] ;
//id_genres
$id_genres = $_POST'id_genres'] ;
//promo
if(!empty($_POST'promo'])){
$promo = 0;
}else{
$promo = 1;
}
//connection au serveur
include ('includes/connexion_bdd.php');
// vérification du produit, existe ou existe pas ??
$connect = mysql_connect ('localhost', 'root', '') or die ("Connexion à la base SQL impossible");
$select = mysql_select_db ('oldschoolgen', $connect);
// On vérifie si le produit est déjà ds la bdd
$sql = 'SELECT count(*) FROM produits WHERE nom="'.mysql_real_escape_string($_POST'nom']).'"AND id_consoles="'.mysql_real_escape_string($_POST'id_consoles']).'"';
$res = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($res);
// on verifie que le produit n'est pas déjà utilisé
mysql_free_result($res);
if ($data[0] == 1) {
$Session->setFlash('Le produit existe déjà dans la base de données','error');
}
// sinon on continue l'insertion du produit
else
{
// insertion des données récupérer
// régularisation de la syntaxe
$req = $bdd->prepare('INSERT INTO oldschoolgen.produits(nom, prix, image, description, quantiter, id_consoles, id_types, id_genres, promo) VALUES(:nom, :prix, :image, :description, :quantiter, :id_consoles, :id_types, :id_genres, :$promo');
$req->execute(array(
'nom' => $nom,
'prix' => $prix,
'image' => $image,
'description' => $description,
'quantiter' => $quantiter,
'id_consoles' => $id_consoles,
'id_types' => $id_types,
'id_genres' => $id_genres,
'promo' => $promo
));
$req->closeCursor();
// message d'alerte
$Session->setFlash('L\'ajout du produit a bien été effectuer','success');
}
// retour a la page d'acceuil
header('Location:ajout_produits.php');
?>
une idée du problème ?
Ha ok, c'est juste pour une insertion.
Je pense qu'en changeant ça
if(!empty($_POST'promo'])){
$promo = 0;
}else{
$promo = 1;
}
En ça :
if(isset($_POST'promo'])){
$promo = 1;
}else{
$promo = 0;
}
Ça devrait fonctionner, chez moi ça marche.
Sinon, c'est que le soucis ne vient pas de là.
J'avais déjà essayé cette solution l'erreur ne viens pas de la XD mon cerveau surchauffe j'ai essayé la concaténation dans ma requête même résultat rien a faire je vois pas d'ou sa viens
Si c'est une erreur mysql tu devrais avoir un retour de l'erreur, vire ton header Location et analyse l'erreur, sinon, je vois pas :/
Voila l'erreur que j’obtiens :
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in F:\wamp\www\osg_test\ajouter_produits.php on line 66
Hum, quand tu fais ton $req->execute() c'est pas plutôt $bdd->execute() ?
Tu as aussi un erreur dans ton prepare, c'est pas :$promo mais :promo (et je pense que l'erreur vient de la puisque tu lui dit de rentrer 8 champs (puisque le dernier ne passe pas) et tu lui donnes 9 variables, d'ou l'erreur "invalid parameter number")
Non pour le $execute c'est bien $req que j'utilise car c'est une requête préparé ensuite le :promo enlève le message d'erreur mais je n’obtiens rien dans ma base de données
MDR je viens de refaire ma requête et j'ai remarqué la parenthèse ..... a je fatigue de c'est erreur de merde que sa soit un point virgule ou une cote
Merci de ton aide !
Je voudrais savoir si tu pourrais m'aidé a ce sujet aussi ? : http://www.grafikart.fr/forum/topic/8222
Cordialement,
xander