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 :
Code :
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;
l'appel de la fonction : $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.