[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

  • Votes
  • Date
  • Date décroissante
  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
    }
    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
      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....
        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.
          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
            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é