Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 28/01/2010, 03h36   #1
Membre du Club
 
Étudiant
Inscription : novembre 2006
Messages : 113
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 113
Points : 44
Points : 44
Envoyer un message via MSN à vladimire
Par défaut recuperation de champs Radio et comparaison avec BD

Bonjour
j'affiche une questions et des boutons radios qui sont les reponses probables, le user doit choisir la bonne reponse, et soummettre vers la fin...

les questions et les reponses, je les prends d'une base de données :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 $sql7="SELECT id, id*0 + rand() AS ordre, question, propo1, propo2, propo3, propo4, coef, categorie FROM quiz WHERE categorie LIKE '%$catego%' ORDER BY ordre limit 0, $nbquestion";
$res4=mysql_db_query($db, $sql7);
 
// afficher les questions
echo "<p class='titre'>";
echo "Voici la liste des questions<br>";
echo "</p>\n";
while($row = mysql_fetch_Array($res4)){
  echo "<br>\n";
  echo "<b>";
  echo "<span class='soustitre'>";
  echo "$row[question]";
  echo "</span>\n";
  echo "</b>";
  if($row[coef]>1){
  echo "<font size=2>";
  echo " (coef. $row[coef])";
  echo "</font>";
  }
  echo "<br>\n";
  echo "<input type=\"radio\" name=\"$row[id]\" value=\"$row[propo1]\">";
  echo "$row[propo1]";
  echo "<br>\n";
  echo "<input type=\"radio\" name=\"$row[id]\" value=\"$row[propo2]\">";
  echo "$row[propo2]";
  echo "<br>\n";
  if($row[propo3]==TRUE){
  echo "<input type=\"radio\" name=\"$row[id]\" value=\"$row[propo3]\">";
  echo "$row[propo3]";
  echo "<br>\n";
  }
  echo "<input type=\"hidden\" name=\"idrow[]\" value=\"$row[id]\">";
}
 
// Envoyer le formulaire
print ("<p><center><input type=\"submit\" name=\"Valider\" value=\"Soumettre les resultats\"></center>\n");
 
// Fermer le formulaire
print ("</form>\n");
j'utilise un champ hidden idrow[] pour lui faire passer les reponses, pour le parcourer dans le fichier qui traite les reponses

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
        for ($i = 1; $i < count($idrow); $i++) {
            echo "<br>";
 
            // Reafficher les questions et les réponses
            $sql = "Select question, reponse, id, coef FROM quiz WHERE id=$idrow[$i]";
            $res = mysql_db_query($db, $sql);
            $row = mysql_fetch_array($res);
            print "Question : ";
            print "<b>";
            print $row["question"];
            print "</b>";
            print "<br>";
            print "Vous avez répondu : ";
            print "<b><i>";
            print $_POST[$idrow[$i]];
            print "</b></i>";
            print "<br>";
 
            // Vérifier si la réponse est correcte et afficher le message de félicitation
            // si la réponse du participant est juste
            if ($_POST[$idrow[$i]] == $row["reponse"]) {
                print "Bravo c'est la bonne réponse !";
 
                // Comptabiliser le point attribueé à la bonne réponse
                $total = $total + $row["coef"];
            }
 
            // Vérifier si la réponse est correcte et afficher la bonne réponse en cas
            // de mauvaise réponse du participant
            if ($_POST[$idrow[$i]] != $row["reponse"]) {
                print "La bonne réponse est : ";
                print "<b>";
                print $row["reponse"];
                print "</b>";
            }
            print "<br>";
 
        }
je prend la reponse depuis le tableau idrow[], je la teste en utilisant $id avec la bonne reponse deja stocké dans la bd row['reponse'] et si c'est vrai je fais un traitement, sinon un autre.... enfin, c'est ce qu'il me semble ici, parceque ça ne marche pas, mon programme ne boucle meme pas une premiere fois....
vladimire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 08h59   #2
Membre habitué
 
Étudiant
Inscription : avril 2009
Messages : 159
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2009
Messages : 159
Points : 103
Points : 103
Alors si ton programme ne boucle pas une première fois le meilleur moyen avant de tester un programme en entier est de mettre un
Tu le décale au fur et à mesure dans ton code jusqu'à trouver où se situe ton erreur.
Je fonctionne ainsi et sa me permet bien souvent de trouver seul des réponses à mes problèmes
A bon entendeur Salut
DjiLow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 09h20   #3
Membre Expert
 
Avatar de Fench
 
Inscription : mai 2002
Messages : 1 570
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2002
Messages : 1 570
Points : 1 703
Points : 1 703
Bonjour,

Dans ton champ hidden tu mets name à idrow[], celui ci sera forcement vide donc ton for ne bouclera même pas une fois.

Dans ton cas, le champ hidden ne sert à rien ... utilises juste les boutons radios. Une fois ton code fait et si tu as encore des problèmes, nous regarderons

bon courage
__________________
Actuellement AI à l'INRA
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 17h44   #4
Membre du Club
 
Étudiant
Inscription : novembre 2006
Messages : 113
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2006
Messages : 113
Points : 44
Points : 44
Envoyer un message via MSN à vladimire
@French, mais je lui donne comme value, le $row[id] à mon champ hidden, je pensais que ça devrait suffir...

@DjLow, oui, j'ai fais pas mal de tests pour arrivre à résoudre ça...

Et puisque j'etais convaincu que ce c'etait un truc banale que je n'ai pas arrivé à voir, je me suis decidé de refaire le tout, autrement, voila comment j'ai procedé ....
listing:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
     while($row = mysql_fetch_Array($res4)){
            echo "<fieldset>";
                echo "<legend> $row[question] </legend>";
 
                      echo "<input type=\"radio\" name='rep".$row['id']."' value=\"$row[propo1]\">";
                      echo "$row[propo1]";
                      echo "<br>\n";
                        echo "<input type=\"radio\" name='rep".$row['id']."' value=\"$row[propo2]\">";
                      echo "$row[propo2]";
                      echo "<br>\n";
                      if($row[propo3]==TRUE){
                      echo "<input type=\"radio\" name='rep".$row['id']."' value=\"$row[propo3]\">";
                      echo "$row[propo3]";
                      echo "<br>\n";
                      }
                      if($row[propo4]==TRUE){
                      echo "<input type=\"radio\" name='rep".$row['id']."' value=\"$row[propo4]\">";
                      echo "$row[propo4]";
                      echo "<br>\n";
                      }
                      echo "<input type=\"hidden\" name=\"idrow[]\" value=\"$row[id]\">";
 
            echo "</fieldset>";           
     }
et la boucle d'affichage

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
foreach($_POST['idrow'] as $id) {
            echo "<br>";
 
            // Reafficher les questions et les réponses
            $sql = "Select question, reponse, id, coef, ps_reponse FROM quiz WHERE id=".intval($id);
            $res = mysql_db_query($db, $sql);
            $row = mysql_fetch_array($res);
            print "Question : ";
            print "<b>";
            print $row["question"];
            print "</b>";
            print "<br>";
            print "Vous avez répondu : ";
            print "<b><i>";
 
            //print htmlspecialchars($_POST['rep'.$id]);
            print stripcslashes($_POST['rep'.$id]);
 
            print "</b></i>";
            print "<br>";
}
ce qui fonctionne très bien maintenant...
merci pour votre temps.
vladimire est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 05h17.


 
 
 
 
Partenaires

Hébergement Web