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

mreiwa Messages postés 87 Date d'inscription   Statut Membre Dernière intervention   -  
 ReDLoG -
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 :)
A voir également:

1 réponse

ReDLoG
 
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