par
jocama » 12 juin 2014, 15:58
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.
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 :
[php]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;[/php]
l'appel de la fonction :
[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>';
}
}[/php]
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.