|
|
|
|
Bonjour,
j'ai dans un formulaire avec des checkbox à cocher :
Que souhaiteriez-vous :<br />
<input type="checkbox" name="souhait[]" id="souhait[]" value="telechargements" /> Plus de téléchargements<br />
<input type="checkbox" name="souhait[]" id="souhait[]" value="tutoriaux" /> Plus de tutoriaux/astuces<br />
<input type="checkbox" name="souhait[]" id="souhait[]" value="liens" /> Plus de liens<br />
<input type="checkbox" name="souhait[]" id="souhait[]" value="news" /> Plus de news<br />
<input type="checkbox" name="souhait[]" id="souhait[]" value="forum" /> Un forum<br />
<input type="checkbox" name="souhait[]" id="souhait[]" value="membre" /> Un espace membre<br /><br />
et je souhaiterais recuperer les valuer (liens, forum...) dans ma base de donnée. j'ai essayé de nombreuses solutions trouvées sur des forum comme:
1:
if (isset($_POST['souhait'])) {
for ($i = 0, $c = count($_POST['souhait']); $i < $c; $i++) {
$sql="insert into questionnaire(souhait) values('$monchoix')";
mysql_query($sql) or die ('erreur sur '.$sql.'<br/>'.mysql_error());
}
}
ou
2:
$monchoix = implode (" ", $souhait);
$sql="insert into questionnaire(souhait) values('$monchoix')";
mysql_query($sql) or die ('erreur sur '.$sql.'<br/>'.mysql_error());
$souhait=$_POST['souhait[]'];
mais je n'arrive pas a les insérer, j'ai déclaré mon champ "souhait" en TEXT puis en SET, lequel est le mieux?
je me suis également inspiré de cette page mais je n'arrive toujours pas:
http://julp.developpez.com/php/formulaires/#L4
pourriez vous m'aider svp?
merci!
De cette façon.
$valeursAutorisees = array('telechargements', 'tutoriaux', 'liens', 'news', 'forum', 'membre');
if( !empty($_POST['souhait']) && is_array($_POST['souhait']) )
{
$_POST['souhait'] = array_unique($_POST['souhait']);
$values = null;
foreach( $_POST['souhait'] as $souhait )
{
if( in_array($souhait, $valeursAutorisees) )
$values .= '(' . $souhait . '),';
}
if( $values != null )
{
$sql= 'INSERT INTO questionnaire(souhait) VALUES ' . rtrim($values, ',');
mysql_query($sql) or exit(erreur sur '.$sql.'<br/>'.mysql_error());
// Nombre de lignes insérées
echo mysql_affected_rows() . ' lignes insérées';
}
}
Attention aussi aux ids de tes input, ils doivent-être uniques ;) |
Tout d'abord merci de ta réponse, mais j'ai un message d'erreur.
|
Hum encore désolé mais je n'arrive pas, j'ai toujours le message d'erreur :
|
En fait c'est un champs de formulaire que je souhaiterai stocker.
|
Le meilleur moyen, c'est de créer des tables supplémentaires et de supprimer cette colonne de ta table.
|