PHP/ MySQL Plusieur Choix de Checkbox

arfal Messages postés 39 Statut Membre -  
 nassih -
Un bonjour a tout le monde,
un Merci a Bobinons pour son aide,

Là voilà j'ai fais une formulaire (questionnaire) que j'ai lié a une base de donné MySQL et la recuperation des donnés par PHP.

Sur les botton d'option (Checkbox), je veus récupérer une où plusieures options comme réponse a ma question.
Toutefois en donnat le nom a ces deux options
<INPUT TYPE="checkbox" NAME="Question1" VALUE="Choix1 " ID=Checkbox1>Choix1 <br>
<INPUT TYPE="checkbox" NAME="Question1" VALUE="Choix2" ID=Checkbox2>choix2 <br>

en selection par exemple les deux choix (1 et 2), je recupère seulement un seul choix dans ma base de donné.

Le champs relatif a cette question1 est defini comme suite :
CREATE TABLE survey_fr ( Question1 mediumtext NOT NULL)

Lrequete dans le fichier PHP est definie comme suite :

$Requete_SQL = "INSERT INTO survey_fr (Question1) VALUES VALUES ('" . $Question1 . "')";

Là je ne sais pas si mon erreurs provient du Name="" du HTML, ou l arequete dans le fichier PHP ou seulement il faut rectifier les caractéristiques du champ relatif a la question 1 ????

Merci infinimment
A voir également:

5 réponses

arfal Messages postés 39 Statut Membre 3
 
foreach ($question1 as $myquestion){}
Ne fonctionne pas.
Pour ce de $question1[0], question1[1] ... j'ai essayé les syntaxes suivantes :
1- while($myquestion = array_shift($question1[0], question1[2], question1[3], question1[4] ) )
mysql_query("insert into survey (question1) VALUE ('".$myquestion."'");
2- while($myquestion = array_shift($question1[0], $question1[2], $question1[3], $question1[4] ) )
mysql_query("insert into survey (question1) VALUE ('".$myquestion."'");
avec la différence entre les deux le caract`re $pour chaque option de la question1.
Sachant que ma table SQL est survey et la champ correpondant à la question1 est question1.

ça me donne toujour Array, alors faut-il construire une autre table (Array), lié au champ question1, où il faut ajouter une autre requête pour que ça me permet d'insérer au même temps dans le champs question1, plusieurs options ???
Merci infinimment pour l'aide.
5
wiwi
 
bonsoir,

pour les choix multiple, il faut entrer un tableau dans le champ 'name' de ton html.
ici, ce sera donc name='question1[]'
ensuite, ton php va recuperer le tableau des resultats, il faudra donc boucler dessus pour entrer tes valeurs dans la base de donnees comme suit:

while($myquestion = array_shift($question1))
mysql_query("insert into mytable (mycolonne) VALUE ('".$myquestion."'");

en esperant que ca marche :)
2
nassih
 
merci ca marche bien
0
raziki
 
bonjour,
j'ai fait comme vous avez dit, et ça marche.
le probleme se pose pas ici, le grand probleme que je rencontre moi, c'est lorsque j'actualise la page, le tableau 'checkbox[]' garde la dernière valeur.
meme avec unset($checkbox) ca marche pas.
voila le code :

<?php do { ?>

<div align="left">
<input type="checkbox" name='checkbox[]' value="<?php echo $row_Recordset1['email'];?>"/>
</div>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?></div>
------------------------------------------------------
..................le reste de code

<?php
if (isset($_POST['checkbox']) && isset($_POST['envoyer']) && ($test==1))
{
$temps=$_POST['checkbox'];
while ($monchoix = array_shift($temps))
{
mysql_query("insert into email (email) VALUE ('".$monchoix."')");
$test=0;
//echo $myquestion;
}
} else echo "Couchez vos Choix";

--------------------------------------------------------------------------

//le boutton envoyer

<input type="submit" name="envoyer" value="Envoyer" />
1
raziki
 
bonjour,
j'ai fait comme vous avez dit, et ça marche bien.
le probleme se pose pas ici, le grand probleme que je rencontre moi, c'est lorsque j'actualise la page, le tableau 'checkbox[]' garde la dernière valeur.
meme avec unset($checkbox) ca marche pas.
(comment initialiser la valeur de tableau a chaque envoi de formulaire)
voila le code :
<form id="form1" name="form1" method="post" action="mnt.php">
<?php do { ?>

<input type="checkbox" name='checkbox[]' value="<?php echo $row_Recordset1['email'];?>"/>

<?php } while ($row_Recordset1 = ysql_fetch_assoc($Recordset1)); ?>
------------------------------------------------------
..................le reste de code

<?php
if (isset($_POST['checkbox']) && isset($_POST['envoyer']))
{
$temps=$_POST['checkbox'];
while ($monchoix = array_shift($temps))
{
mysql_query("insert into email (email) VALUE ('".$monchoix."')");
}
} else echo "Couchez vos Choix";

--------------------------------------------------------------------------

//le boutton envoyer

<input type="submit" name="envoyer" value="Envoyer" />

</form>
0
arfal Messages postés 39 Statut Membre 3
 
j'ai bien fait ce que vous m'avez dit mais j'ai récupéré sur ma table seulement le mot Array.
Faut-il ajouter des arguments a name=question1[]???
-2
wiwi
 
si tu affiches $question1, il te renverra bien Array( ca veut dire que c'est un tableau)
tu dois demander $question1[0], question1[1],...pour avoir les resultats.
au lieu de la boucle while, essaie un foreach ($question1 as $myquestion){} pour voir....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wiwimagique Messages postés 481 Statut Membre 108
 
c moi...quelqu'un a deja pris mon pseudo en membre :/

C bizarre, ca marche tres bien chez moi, foreach qussi bien que array_shift...

verifie bien que tu as ecris les variable de la meme maniere (majuscule), etc...
-3