8791 sujets

Développement web côté serveur, CMS

Salut, je sèche depuis hier sur un problème de communication, et cherche une piste de soluce...

Voilà en gros, j'ai un formulaire, avec dedans 3 boutons radio.

<label><input type="radio" name="boxeur" value="1" id="boxeur" />Boxeur</label><br />
   <label><input type="radio" name="magicien" value="1" id="magicien" />magicien</label><br />
   <label><input type="radio" name="catcheur" value="1" id="catcheur" />Catcheur</label><br />


Une fois un des boutons, en théorie, j'envois les valeurs dans ma BDD, mais là, aucune valeur n'est réceptionnée... PAR CONTRE , quand je coche tous les boutons, là, pas de problème, les valeurs sont insérées correctement...

La structure de ma table:

CREATE TABLE `profession` (
  `id` int(11) NOT NULL auto_increment,
  `boxeur` text NOT NULL,
  `magicien` text NOT NULL,
  `catcheur` text NOT NULL,
    PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;


Ma requête est la suivante:

$req = $bdd->prepare('INSERT INTO profession (boxeur, magicien, catcheur) VALUES(?, ?, ?)');
$req->execute(array($_POST['boxeur'], $_POST['magicien'], $_POST['catcheur']));


Je teste, pour voir si mes valeur sont bien récupérées, en faisant un
<?php echo $_POST['magicien']; ?>
et je vois mes valeurs s'afficher après soumission du formulaire, mon stress est donc la communication avec la BDD, enfin, j'en suis pas certain...

Auriez-vous une idée du problème car je teste depuis hier sans succès..
Modifié par FranZz (17 Dec 2010 - 09:32)
Salut,

Un bouton radio ou une checkbox non cochée ne renvoie rien; il n'est donc pas présent dans les variables post. Moralité, ta requète sql part en barigoule à cause d'une chaine vide (excuse-moi l'expression).
Tu dois vérifier la présence du paramètre, et lui affecter une valeur par défaut sinon, un turc du genre
$boxeur = $magicien = $catcheur = 0;
extract ($_POST);


Ainsi, les valeurs par défaut (les 0) sont écrasées par celles éventuellement transmises en post.