【问题标题】:Incrementation In a php while loop在 php while 循环中递增
【发布时间】:2013-12-26 17:10:09
【问题描述】:

嗨,伙计们,我想知道您是否可以帮助我在我的 while 循环中递增。我正在使用 php 编写在线测验,并希望每次选择提交按钮时都会更新问题编号,但变量 $questionNumber 仅保持为一个

我的代码如下所示

<?php session_start(); ?>
<html>
<head>
<title> World Cup Quiz  </title>
</head>
<body>
<div align = center><strong> World Cup Quiz</strong></div>
<br />

<div align =center>
<?php



include ("dbConnect.php");

$_SESSION['number']=1;
$questionNumber = $_SESSION['number'];
$userScore=0;
$number= rand(1,4);

//search database for generated number and match ID
$dbQuery= "SELECT * FROM `questions 1.0` WHERE  `ID` =$number";
$dbResult=mysql_query($dbQuery);

echo "Question:".$questionNumber."/5<br>";

//Assign variables to each attribute

while ($dbRow=mysql_fetch_array($dbResult))

{


   $theID=$dbRow["ID"];
   $theQuestion=$dbRow["Question"];
   $theAnswer1=$dbRow["Correct Answer"];
   $theAnswer2=$dbRow["Wrong Answer 1"];
   $theAnswer3=$dbRow["Wrong Answer 2"];
   $theAnswer4=$dbRow["Wrong Answer 3"];
   $_SESSION['number']=$questionNumber+1;
}




  //Print Questions and Answers


    echo '<strong>'."$theQuestion".'</strong><br>';
   ?> <form name="correctAnswer" form method="post" action="quiz.php"> 
  <?php
   echo "$theAnswer1";?> <input type="radio" name="correctAnswer">
  <?php
   echo "<br>$theAnswer2"; ?> <input type="radio" name="wrongAnswer1"> 
   <?php
   echo "<br>$theAnswer3"; ?> <input type="radio" name="wrongAnswer2"> 
   <?php
   echo "<br>$theAnswer4"; ?> <input type="radio" name="wrongAnswer3"> 
   <br><input type="submit" value="Submit Answer">
   </form>


</div>
</body>

</html>

希望你能帮忙

谢谢

【问题讨论】:

    标签: php while-loop increment


    【解决方案1】:

    您正在重置脚本开头的数字:

    $_SESSION['number']=1;
    

    您需要将其更改为:

    if (!isset($_SESSION['number']))
    {
        $_SESSION['number']=1;
    }
    

    【讨论】:

    • 效果很好,如果增量达到 6 等特定数字,有没有办法停止循环?
    【解决方案2】:

    您可以将这部分代码更改为以下内容。

    而不是: `

    $_SESSION['number']=1;
    $questionNumber = $_SESSION['number'];
    $userScore=0;
    $number= rand(1,4); 
    

    写这个:-

      $number= rand(1,4);
        $questionNumber = 0;
        if(isset($_SESSION['number']))
        {
            $_SESSION['number'] = $_SESSION['number'] + 1;
            $questionNumber = $_SESSION['number'];
        }else{
        $_SESSION['number'] = 1;
    }
    

    我认为问题在于您在检查会话是否已设置且会话有效之前将其分配为等于 1。

    希望能补充一些

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-08
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多