Bonjour,
Dans le cadre de mon projet de fin d'étude et donc de ma soutenance, j'ai besoin que mon projet soit opérationnel sauf que la lorsque je clique sur passer à la question suivante j'ai 2 soucis (pour le moment ^^). La page refresh sur la question 1 donc il me dit qu'une réponse est enregistré et je suis bloqué.
Je vous joins le code :
l'appel de la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110 case 'enregistrer_reponse_QUIZZ' : $idQuizz = $_POST['idQUIZZ']; $idQcm = $_POST['idQCM']; $idQuestion = $_POST['idQuestion']; $numQuestion = $_POST['numQuestion']; // $IdUtilisateur = $_POST['IdUtilisateur']; $req_reponses = " SELECT t_reponses.IdReponse IdReponse, t_reponses.NumeroReponse NumeroReponse, t_reponses.DefautReponse DefautReponse FROM db_quizz.tb_reponses t_reponses WHERE t_reponses.IdQuestion = '".$idQuestion."' ORDER BY t_reponses.NumeroReponse ASC"; // echo $req_reponses; $res_reponses = mysql_query($req_reponses); $ReponseCheck = array(); $ReponseDefaut = array(); while($row_reponses = mysql_fetch_array($res_reponses)){ $ReponseCheck[$row_reponses['IdReponse']] = isset($_POST['RESPONSE_CHECKBOX_'.$row_reponses['NumeroReponse'].'']) ? 1 : 0; $ReponseDefaut[$row_reponses['IdReponse']] = $row_reponses['DefautReponse']; } $NbCheck = array_sum($ReponseCheck); if($NbCheck >= 1){ $sel_responses_user = " SELECT DISTINCT(t_reponses_user.NumeroQuestion) NumeroQuestion FROM db_quizz.tb_reponsesusers t_reponses_user WHERE t_reponses_user.IdQCM = '".$idQcm."' ORDER BY t_reponses_user.NumeroQuestion DESC LIMIT 1 "; // echo $sel_responses_user; $res_responses_user = mysql_query($sel_responses_user); $row_responses_user = mysql_fetch_array($res_responses_user); if($row_responses_user['NumeroQuestion'] < $numQuestion){ $resultatReponse = 1; $nbTotalReponse = 0; foreach($ReponseCheck AS $IdReponse => $Reponse){ // Répondu 1 => Attendu 1 = 1 $Resultat = ($Reponse == $ReponseDefaut[$IdReponse]) && ($ReponseDefaut[$IdReponse] == 1) ? 1 : 0; // Répondu 0 => Attendu 1 = -1 $Resultat = ($Reponse != $ReponseDefaut[$IdReponse]) && ($ReponseDefaut[$IdReponse] == 1) ? -1 : $Resultat; // Répondu 1 => Attendu 0 = -1 $Resultat = ($Reponse != $ReponseDefaut[$IdReponse]) && ($Reponse == 1) ? -1 : $Resultat; // echo $Reponse." >> ".$ReponseDefaut[$IdReponse]." == ".$Resultat."<br>"; if($Resultat == -1) { $resultatReponse = 0;} $ins_response = " INSERT INTO db_quizz.tb_reponsesusers( IdQuizz, IdQCM, IdQuestion, IdReponse, IdUtilisateur, NumeroQuestion, Reponse, Defaut, Resultat ) VALUES ( '".$idQuizz."', '".$idQcm."', '".$idQuestion."', '".$IdReponse."', '".$IdUtilisateur."', '".$numQuestion."', '".$Reponse."', '".$ReponseDefaut[$IdReponse]."', '".$Resultat."' ) "; // echo $ins_response; if(mysql_query($ins_response)){ $nbTotalReponse+=1; } } if($nbTotalReponse == mysql_num_rows($res_reponses)){ $etatQCM = 3; $ins_note = " INSERT INTO db_quizz.tb_notes( IdQuizz, IdQCM, IdQuestion, IdUtilisateur, NumeroQuestion, Note ) VALUES ( '".$idQuizz."', '".$idQcm."', '".$idQuestion."', '".$IdUtilisateur."', '".$numQuestion."', '".$resultatReponse."' ) "; // echo $ins_note; if(mysql_query($ins_note)){ $etatQCM = 3; $up_quizz = " UPDATE db_quizz.tb_quizzusers t_quizzusers SET t_quizz_user.NumQuestionQCM = '".$numQuestion."', t_quizz_user.EtatQCM = '".$etatQCM."' WHERE t_quizz_user.IdQCM = '".$idQcm."' "; // echo $up_quizz; mysql_query($up_quizz); } } } else { $_SESSION['message'] = 'Question '.$row_responses_user['NumeroQuestion'].' est déjà enregistré'; } } else { $_SESSION['message'] = 'Merci de choisir au minimun une réponse possible'; } include 'vues/dashboard/restart_quizz.php'; break;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135 <?php $req_quizz = "SELECT t_quizz.IdQuizz IdQUIZZ, t_quizz.TitreQuizz TitreQuizz, t_quizz.DescriptionQuizz DescriptionQuizz, t_quizz_user.IdQCM IdQCM FROM db_quizz.tb_quizz t_quizz, db_quizz.tb_quizzusers t_quizz_user WHERE t_quizz.IdQuizz = t_quizz_user.IdQuizz AND t_quizz_user.IdQCM = '".$idQcm."'"; // echo $req_quizz; $sql_quizz = mysql_query($req_quizz); $row_quizz = mysql_fetch_array($sql_quizz); echo '<div class="well well-small">'; echo '<h2>QUIZZ - '.$row_quizz['TitreQuizz'].'</h2>'; echo '</div>'; $req_avancement = " SELECT t_quizz.NbQuestionQuizz NbQuestionQuizz, t_quizz.CorrigerQuizz CorrigerQuizz, t_quizz_user.DateDebutQCM DateDebutQCM, t_quizz_user.DateFinQCM DateFinQCM, t_quizz_user.NumQuestionQCM NumQuestionQCM, t_quizz_user.EtatQCM EtatQCM FROM db_quizz.tb_quizz t_quizz, db_quizz.tb_quizzusers t_quizz_user WHERE t_quizz.IdQuizz = t_quizz_user.IdQuizz AND t_quizz_user.IdQCM = '".$row_quizz['IdQCM']."' "; // echo $req_avancement; $sql_avancement = mysql_query($req_avancement); $row_avancement = mysql_fetch_array($sql_avancement); if($row_avancement['EtatQCM'] <= 3){ if(mysql_num_rows($sql_avancement) == 0){ echo '<div class="alert alert-error">'; echo '<h3>Aucun QUIZZ</h3>'; echo '</div>'; } else{ echo '<div class="well well-mini">'; echo '<h3>Etat d\'avancement du QUIZZ</h3>'; echo '<table class="table">'; echo '<tr>'; echo '<th>Date de<br>début</th>'; echo '<th>Date de<br>fin</th>'; echo '<th>Nombre de<br>questions répondues</th>'; echo '<th>Etat</th>'; echo '<th>Affichage<br>du corrigé</th>'; echo '</tr>'; $trClassColor = in_array($row_avancement['EtatQCM'], array(2, 3)) ? 'warning' : 'success' ; echo '<tr class="'.$trClassColor.'">'; echo '<td>'.$row_avancement['DateDebutQCM'].'</td>'; echo '<td>'.$row_avancement['DateFinQCM'].'</td>'; echo '<td>'.$row_avancement['NumQuestionQCM'].'/'.$row_avancement['NbQuestionQuizz'].'</td>'; echo '<td>'.$liste_etats_qcm[$row_avancement['EtatQCM']]['Description'].'</td>'; $typeBtn = $row_avancement['CorrigerQuizz'] == 1 ? "label-success" : "label-important"; echo '<td><span class="label label-mini '.$typeBtn.'" style="width: 20px;">'.($row_avancement['CorrigerQuizz'] == 1 ? 'Oui' : 'Non').'</span>'; echo '</tr>'; echo '</table>'; echo '</div>'; } $numQuestion = ($row_avancement['NumQuestionQCM']+1); $limiteNbQuestions = $row_avancement['NbQuestionQuizz']; if(isset($_SESSION['message']) && $_SESSION['message']!='') { echo '<div class="alert alert-error">'; echo '<h4>Attention!</h4>'; echo $_SESSION['message']; echo '</div>'; } if(($numQuestion <= $limiteNbQuestions)) { echo '<form action="index.php" method="POST">'; echo '<div class="well" style="background-color:#DFF0D8;">'; $sel_question = " SELECT t_questions.IdQuestion IdQuestion, t_questions.NumeroQuestion NumeroQuestion, t_questions.DescriptionQuestion DescriptionQuestion FROM db_quizz.tb_questions t_questions WHERE t_questions.IdQuizz = '".$row_quizz['IdQUIZZ']."' AND t_questions.NumeroQuestion = '".$numQuestion."' "; // echo $sel_question; $res_question = mysql_query($sel_question); $row_questions = mysql_fetch_array($res_question); echo '<h4>Q '.$row_questions['NumeroQuestion'].' - <i>'.$row_questions['DescriptionQuestion'].'</i></h4>'; echo '<br>'; $req_reponses = " SELECT t_reponses.NumeroReponse NumeroReponse, t_reponses.DescriptionReponse DescriptionReponse FROM db_quizz.tb_reponses t_reponses WHERE t_reponses.IdQuestion = '".$row_questions['IdQuestion']."' ORDER BY t_reponses.NumeroReponse ASC "; // echo $req_reponses; $res_reponses = mysql_query($req_reponses); while($row_reponses = mysql_fetch_array($res_reponses)) { echo '<blockquote>'; echo '<label class="checkbox">'; echo '<input type="checkbox" name="RESPONSE_CHECKBOX_'.$row_reponses['NumeroReponse'].'">'; echo '<h5>R '.$row_questions['NumeroQuestion'].'.'.$row_reponses['NumeroReponse'].' - <i>'.$row_reponses['DescriptionReponse'].'</i></h5>'; echo '</label>'; echo '</blockquote>'; } echo '<input type="hidden" name="idQUIZZ" value="'.$row_quizz['IdQUIZZ'].'"/>'; echo '<input type="hidden" name="idQCM" value="'.$row_quizz['IdQCM'].'"/>'; echo '<input type="hidden" name="idQuestion" value="'.$row_questions['IdQuestion'].'"/>'; echo '<input type="hidden" name="numQuestion" value="'.$row_questions['NumeroQuestion'].'"/>'; echo '<input type="hidden" name="VUE" value="'.$vues.'" />'; echo '<input type="hidden" name="ACTION" value="enregistrer_reponse_QUIZZ" />'; echo '<input type="submit" class="btn btn-success" value="Passer à la question suivante"/>'; echo '</form>'; echo '</div>'; } else { echo '<form action="index.php" method="POST">'; echo '<div class="alert alert-success">'; echo '<input type="hidden" name="idQUIZZ" value="'.$row_quizz['IdQUIZZ'].'"/>'; echo '<input type="hidden" name="idQCM" value="'.$row_quizz['IdQCM'].'"/>'; echo '<input type="hidden" name="VUE" value="'.$vues.'" />'; echo '<input type="hidden" name="ACTION" value="finaliser_reponse_QUIZZ" />'; echo '<input type="submit" class="btn btn-success" value="Terminer"/>'; echo '</div>'; echo '</form>'; } }>
De plus il me dit que la variable IdUtilisateur n'est pas défini et je ne comprends pas pourquoi , j'ai mis en commentaire ma déclaration que j'avais rajouté et qui ne me semblait pas nécessaire mais quand je rajoute ma déclaration il bloque de plus belle.
Merci d'avance.
Partager