Transférer checkbox vers un base de donnée en

Fermé
mreiwa Messages postés 87 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 27 avril 2012 - 28 mars 2012 à 12:52
 ReDLoG - 28 mars 2012 à 22:07
Bonjour:)
j'ai utilisé la requéte ci-dessus pour récupérer les données à un base de données ;mais les champs checkbox ne transmettre pas correctement le choix vers base de données ,(dans mon formulaire l'internaute doit choisissez son sexe :M/F
et son type:enfant/adulte/adolescent)
et voila mon code "fichier :inserction.php"

<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "ofollowme" ) ;

//récupération des valeurs des champs:
//nom:
$nom = $_POST["nom"] ;
//prenom:
$prenom = $_POST["prenom"] ;
//male:
$M = $_POST["M"] ;
//femelle:
$F = $_POST["F"] ;
//checkbox enfant:
$enfant = $_POST["enfant"] ;
//checkbox adolescent:
$adolescent = $_POST["adolescent"] ;
//checkbox adulte:
$adulte = $_POST["adulte"] ;
// email:
$email = $_POST["email"] ;
// img:
$img = $_POST["img"] ;
//login:
$login = $_POST["login"] ;
// pw:
$pw = $_POST["pw"] ;

//création de la requête SQL:
$sql = "INSERT INTO enfant (nom, prenom, M, F, enfant, adolescent, adulte, email, img, login, pw )
VALUES ( '$nom', '$prenom', '$M', '$F', '$enfant', '$adolescent', '$adulte', '$email', '$img ', '$login ', '$pw') " ;

//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;

//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
{
echo("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion à échouée") ;
}

include("index.php");
?>


et voila le code de mon formulaire:
<form name="enregistrer" class="register" method="POST" action="insertion.php" >
<h3>Inscription</h3>
<div class="column">

<div>
<label><span class="Style1">*</span> Nom :</label>
<input type="text" name="nom"/>

</div>

<div>
<label><span class="Style1">*</span> Prénom :</label>
<input type="text" name="prenom"/>

</div>
<div>
<label>Sexe :

<table width="180">
<tr>
<td><center>Male<br/><input name="M" type="checkbox" value="M" /></center></td>
<td><center> Femelle <br/><input name="F" type="checkbox" value="F" /></center></td>
</tr>
</table>
</div>
<div>
<label><span class="Style1">*</span> Type :

<table width="200" border="0">
<tr>
<td><center>Enfant <input name="enfant" type="checkbox" value="enfant" /></center></td>
<td><center> Adolescent <input name="adolescent" type="checkbox" value="adolescent" /></center></td>
<td> <center> Adulte <input name="adulte" type="checkbox" value="adulte" /></center></td>
</tr>
</table>


</label></div>

<div>
<label><span class="Style1">*</span>Email :</label>
<input name="email" type="text" />

</div>
<div>
<label><span class="Style1">*</span> Telephone :</label>
<input name="tel" type="text" />

</div>
</div>

<div class="column">
<div>

<img src="images/profil_icon.jpg" />

<input type="file" size="10" name="img" />
<input type="hidden" name="MAX_FILE_SIZE" value="20000"/>

</div>
<div>
<label><span class="Style1">*</span> Nom d'utilisateur :</label>
<input name="login" type="text" />

</div>
<div>
<label><span class="Style1">*</span>Mot de passe :</label>
<input name="pw" type="password" />

</div>
</div>
<div class="bottom">
<input name="ajouter" type="submit" value="ajouter" onCLick="javascript:verif()" />

<a href="index.php" rel="login" class="linkform">Vous avez déjà un compte? Connectez-vous ici</a>
<div class="clear"></div>
</div>
</form>


et comment obliger l'internaute pour cocher une seul choix
et merci d'avance :)

1 réponse

Bonsoir,
Pour cocher un seul choix, il faut normalement utiliser des input de type "radio" :
Sexe :<br />
Male <input type="radio" name="sexe[]" value="M" /><br />
Femelle <input type="radio" name="sexe[]" value="F" /><br />
Type :<br />
Enfant <input type="radio" name="categorie[]" value="enfant" /><br />
Adolescent <input type="radio" name="categorie[]" value="adolescent" /><br />
Adulte <input type="radio" name="categorie[]" value="adulte" />

Que tu récupères ainsi dans ton script :
if(isset($_POST['sexe']) && $_POST['sexe'] == 'M') {
	$sexe = 'M';
} else {
	$sexe = 'F';
}
if(isset($_POST['categorie']) && $_POST['categorie'] == 'enfant') {
	$categorie = 'enfant';
} else if(isset($_POST['categorie']) && $_POST['categorie'] == 'adolescent') {
	$categorie = 'adolescent';
} else {
	$categorie = 'adulte';
}

Au passage ta table est mal pensée, car un enregistrement ne peut avoir qu'un sexe (soit mâle, soit femelle, je ne connais pas d'humain hermaphrodite lol) et qu'un type soit enfant, soit adolescent, soit adulte (bien que l'on dit souvent que les adultes sont de grands enfants lol).
Donc réorganise ta table "enfant" et la requête devient :
$sql = "INSERT INTO enfant (nom, prenom, sexe, categorie, email, img, login, pw) 
VALUES( '$nom', '$prenom', '$sexe', '$categorie', '$email', '$img ', '$login ', '$pw')";
0