PHP/ MySQL Plusieur Choix de Checkbox

Fermé
arfal Messages postés 37 Date d'inscription mardi 5 juin 2001 Statut Membre Dernière intervention 27 août 2004 - 20 janv. 2003 à 12:05
 nassih - 18 avril 2009 à 19:40
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

5 réponses

arfal Messages postés 37 Date d'inscription mardi 5 juin 2001 Statut Membre Dernière intervention 27 août 2004 3
21 janv. 2003 à 12:38
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
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
merci ca marche bien
0
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
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 37 Date d'inscription mardi 5 juin 2001 Statut Membre Dernière intervention 27 août 2004 3
20 janv. 2003 à 19:20
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
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 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
21 janv. 2003 à 13:01
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