如何一次显示一行,当我点击下一行显示在php的下一行?

时间:2017-04-01 19:38:19

标签: php

我创建了一个页面(exam.php),我想逐个显示问题。

当学生在提交答案后点击下一步时,我希望它显示下一个问题。

 <?php
    if(!isset($_SESSION['qno']))
        $_SESSION['qno'] = 1;
    else{

        if(isset($_POST['next']))
        {
                $_SESSION['qno'] += 1;
        }

    }


    $sql ="select  * from question where question_id= ' ".$_SESSION['qno']." '  ";
    $query=mysql_query($sql);
    while($row = mysql_fetch_assoc($query))
    {
        $question =$row['question'];
        $op1 = $row['option1'];
        $op2 = $row['option2'];
        $op3 = $row['option3'];
        $op4 = $row['option4'];


    }

    ?>

它可以工作,但在这段代码中我使用question_id来显示数据。问题出现之后,当管理员删除一些由于question_id差距而无法正常工作的问题时。

我初始化question_id = 1;那么这个问题的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用LIMIT选择问题而不是问题ID。

select * 
from `question`
ORDER BY `question_id`
LIMIT $SESSION[$q_no],1;

答案 1 :(得分:0)

首先,您必须将每个页面的当前ID传输到下一个页面。你是通过$_SESSION["qno"]完成的。

现在您必须更改查询并运行此程序:

$sql ="select top 1 * from question where question_id>{$_SESSION['qno']} order by question_id";
$query=mysql_query($sql);
while($row = mysql_fetch_assoc($query))
  {
  $_SESSION['qno']=$row["question_id"];
  $question =$row['question'];
  $op1 = $row['option1'];
  $op2 = $row['option2'];
  $op3 = $row['option3'];
  $op4 = $row['option4'];
  }