impossible de passer à la question suivante dans mon QCM

Petit nouveau ! | 6 Messages

12 juin 2014, 09:59

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 :
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.