[php] qui peux m'aider ??

bonjour

voila j'ai ce morceau de code

if ($Rep_correcte != $Reponse){
echo "<div align='center'><font size='6'>Non, c'est une mauvaise réponse</font></div>";
echo "<br />";
echo "<br />";
echo "<div align='center'><img border='0' src='../../../Image/MauvRep.gif' ></div>";
$NumEssai=$NumEssai+1;
$sql2="UPDATE apprenant SET NbEssai='$NumEssai' where nom='$Nom' and prenom='$Prenom' and pseudo='$pseudom'";
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
}
else
{

$NumQuestion=$NumQuestion+1;
$NEssai="0";
$NombreReponseBonne=$NombreReponseBonne+1;

$chgtQuestion2="UPDATE apprenant SET NumQuestion='$NumQuestion', NbEssai='$NEssai', NbReponseBonne='$NombreReponseBonne' where nom='$Nom' and prenom='$Prenom' and pseudo='$pseudom'";
$reqchgtQuestion2 = mysql_query($chgtQuestion2) or die('Erreur SQL !<br>'.$chgtQuestion2.'<br>'.mysql_error());
echo "<div align='center'><font size='6'>Bravo, c'est une bonne réponse</font></div>";
echo "<br />";
echo "<br />";
echo "<div align='center'><img border='0' src='../../../Image/BonRep.gif' ></div>";

$insertstats="INSERT INTO Stats(Id,id_eleve,id_question,id_categorie,Essai,BonneRep,MauvaiseRep) VALUES('','$Ideleve','$Nquest','$Cat','$NumEssai','1','0')";
$reqinsertstats = mysql_query($insertstats) or die('Erreur SQL !<br>'.$insertstats.'<br>'.mysql_error());
}

echo $NumQuestion;
echo $NbQ;

if($NumQuestion==$NbQ)
{
echo "<meta http-equiv='refresh' content='2; URL=http://127.0.0.1/Membre/Exercices/TN/index.php'>";
}
?>




ce code permet de verifié la reponse d'une question si c bon on passe a la question sinon on incremente le nombre d'essai et on reviens a la question

j'aimerai savoir comment faire pour quand j'arrive a la derniere question les requetes s'execute quand meme sauf l'incrémentation du numéro de la question et etre redirigé vers une autre page

j'espere etre clair

merci a vous

6 réponses

  1. Contributeur
    par rapport au message de Setpholma je ne peux car en fait si je fais ca au moment ou je vais validez la question 2 étant donnée que son N° est deja 2 je vais etre renvoyez directement sur la page mais les stats comme le nombre de reponse bonnes ne sera pas incrémenté
    0
    1. Contributeur
      oui j'y est penser mais j'aimerai que quand on verifie la derniere question, si c'était la derniere question on va directement vers une autre page
      0
      1. Bonsoir
        A la place de cela:
        if($NumQuestion==$NbQ)
        {
        echo "<meta http-equiv='refresh' content='2; URL=http://127.0.0.1/Membre/Exercices/TN/index.php'>";
        }
        ?>
        je te propose
        if($NumQuestion==$NbQ)
        {
        echo "<a href='index.php'>Recommencer ou ce que tu veux</a>";
        }
        ?>


        Par ailleurs quand tu as une erreur, poste le message d'erreur exact. Cela nous aidera à t'aider.
        0
        1. Contributeur
          le header ne marche pas dans mon code

          il me dis qu'il peux pas ouvrir un header ou je sais pas koi

          ca me dis header cannot modify etc....
          0
          1. Modérateur
            Ou sinon, pour éviter d'avoir des ruptures dans le code avec des {?> <?} qui rendent le code un peu illisible, on peut afficher plusieurs lignes d'un coup
            sans avoir à se préoccuper des guillemets en utilisant la syntaxe heredoc:

            if(!$_POST['Nom'])
            {
                 echo <<<PROUT
                 <strong>Attention !!!</strong><br/>
                 Vous n'avez pas saisi de nom dans le formulaire précédent !
            PROUT;
            <?php }

            Voir https://www.php.net/manual/fr/language.types.string.php#language.types.string.syntax.heredoc
            0
            1. Tout d'abord, j'ai pas lu tout ton code. C'est un peu trop monolithique pour moi ! :)

              Mais, juste une chose : tu peux fermer la balise PHP et la reprendre un peu après, si tu veux écrire du HTML. Ca évitera de voir fleurir des <i>echo</i> un peu partout. Exemple :

              <?php
              
               if(!$_POST['Nom'])
              {?>
                   <strong>Attention !!!</strong><br/>
                   Vous n'avez pas saisi de nom dans le formulaire précédent !
              <?php }
              
              else
              {
                   // Traitement du formulaire
              }
              ?>
              

              Ceci étant dit, je reviens plus précisément sur ta question, il suffit de tester ta variable $nbquestion au début du script (pour éviter des problèmes de header) :
              if( $nbquestion >= $NOMBRE_QUESTIONS )
              {
                   // Redirection vers la page fin_du_quizz.php
                   header("Location: fin_du_quizz.php");
              }
              else
              {
                   // Autre partie du code
              }
              0