par
angebleu17 » 07 mars 2007, 16:10
ton code est plus simple que le mien..et ça donne le meme résultat.
si j'enléve "value="'.$id_reponse.'" pour mes case a cocher, il me met :
Code : Tout sélectionner
Question "2" - Plusieurs réponses
Réponse n° 6 : on
Réponse n° 8 : on
donc c'est bon.. mais il n'y a pas un moyen d'avoir juste le numéro de la réponse cocher et pas le "on", car aprés je vais mettre les réponses dans ma base, et il va enregistré le on. Par contre pour les zones de textes c'est bon car je pourrais enregistré id question, id rep et le texte !
j'ai rajouter mes requete dans le code :
<?
foreach ($_POST['question'] as $CleQuestion=>$Reponse)
{
// on Vérifie que c'est bien un tableau avant de faire un foreach
if(is_array($Reponse))
{
echo 'Question n°'.$CleQuestion.' - Plusieurs réponses : <br />';
foreach ($Reponse as $sousnum=>$valeur)
{
echo 'Réponse n° '.$sousnum.' : '.$valeur.'<br />';
}
$sql = "INSERT INTO vote(id_sondage, id_question, id_reponse, texte_libre)VALUES('$id_sondage','$CleQuestion','$sousnum','$valeur')";
$req = mysql_query($sql);
}
else
{
echo 'Question n°'.$CleQuestion.' -> Réponse '.$Reponse.'<br />';
$sql2 = "INSERT INTO vote(id_sondage, id_question, id_reponse)VALUES('$id_sondage','$CleQuestion','$Reponse')";
$req2 = mysql_query($sql2);
}
}
?<
voici la structure de ma table :
Create table vote (id_vote int(5) not null auto_increment,
id_sondage int(5) references sondage (id_sondage),
id_question int(5) references question (id_question),
id_reponse int(5) references reponse (id_reponse),
id_client int (5) not null,
texte_libre varchar (260),
primary key (id_vote, id_reponse, id_sondage, id_question));
Id client pr le moment, je m'en occupe pas. Donc en fait quand il y a plusieurs réponses j'affiche le texte dans texte_libre
Mais pour les cases a cochers qui correspond a la question 2, dans mon essai j'avais cocher 2 cases, et il en a enregistré qu'une dans ma table et il a enregistré "on" dans texte_libre !
comment faire pour q'il enregistre toutes les données et ne pas mettre de "on" ?!
ton code est plus simple que le mien..et ça donne le meme résultat.
si j'enléve "value="'.$id_reponse.'" pour mes case a cocher, il me met :
[code]Question "2" - Plusieurs réponses
Réponse n° 6 : on
Réponse n° 8 : on[/code]
donc c'est bon.. mais il n'y a pas un moyen d'avoir juste le numéro de la réponse cocher et pas le "on", car aprés je vais mettre les réponses dans ma base, et il va enregistré le on. Par contre pour les zones de textes c'est bon car je pourrais enregistré id question, id rep et le texte !
j'ai rajouter mes requete dans le code :
[php]<?
foreach ($_POST['question'] as $CleQuestion=>$Reponse)
{
// on Vérifie que c'est bien un tableau avant de faire un foreach
if(is_array($Reponse))
{
echo 'Question n°'.$CleQuestion.' - Plusieurs réponses : <br />';
foreach ($Reponse as $sousnum=>$valeur)
{
echo 'Réponse n° '.$sousnum.' : '.$valeur.'<br />';
}
$sql = "INSERT INTO vote(id_sondage, id_question, id_reponse, texte_libre)VALUES('$id_sondage','$CleQuestion','$sousnum','$valeur')";
$req = mysql_query($sql);
}
else
{
echo 'Question n°'.$CleQuestion.' -> Réponse '.$Reponse.'<br />';
$sql2 = "INSERT INTO vote(id_sondage, id_question, id_reponse)VALUES('$id_sondage','$CleQuestion','$Reponse')";
$req2 = mysql_query($sql2);
}
}
?<[/php]
voici la structure de ma table :
Create table vote (id_vote int(5) not null auto_increment,
id_sondage int(5) references sondage (id_sondage),
id_question int(5) references question (id_question),
id_reponse int(5) references reponse (id_reponse),
id_client int (5) not null,
texte_libre varchar (260),
primary key (id_vote, id_reponse, id_sondage, id_question));
Id client pr le moment, je m'en occupe pas. Donc en fait quand il y a plusieurs réponses j'affiche le texte dans texte_libre
Mais pour les cases a cochers qui correspond a la question 2, dans mon essai j'avais cocher 2 cases, et il en a enregistré qu'une dans ma table et il a enregistré "on" dans texte_libre !
comment faire pour q'il enregistre toutes les données et ne pas mettre de "on" ?!