每次在php中单击按钮时,如何逐个显示数据库中的项目

时间:2015-04-11 16:53:03

标签: php mysql phpmyadmin

好吧,我有一个页面,我想逐个显示存储在数据库中的项目。一个接一个地意味着点击一个按钮,下一个项目应该到来。 (在我的案例中,项目是问题)。

所以我为此编写了代码。我得到的问题是循环只工作一次。我的意思是当点击下一个按钮时,我显示下一个项目,但是我再次单击“下一步”,没有任何反应。这是代码..

<?php

 $qno=1;

 require_once('connect.php');

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

  $q="select * from `uquestion` where `qno`='$qno' and
  `uname`='{$_SESSION['user']}'";

 $result=mysqli_query($con,$q);

 if ($result) {

while($row=mysqli_fetch_array($result)){ 
$qno = $row['qno'];
$question = $row['question'];
$op1 = $row['op1'];
$op2 = $row['op2'];
$op3 = $row['op3'];
$op4 = $row['op4'];
$answer = $row['answer'];

}
}
?>

<form name="exam" method="post" action="exam.php">
 <!--My Current page name is "exam.php" -->

<?php echo $question ?>  <br>

<input type="radio" name="question1" value="op1"> <?php echo $op1; ?> <br>
<input type="radio" name="question1" value="op2"> <?php echo $op2; ?> <br>
<input type="radio" name="question1" value="op1"> <?php echo $op3; ?> <br>
<input type="radio" name="question1" value="op1"> <?php echo $op4; ?> <br>
<input type="submit" name="previous" value="Previous">
<input type="submit" name="next" value="Next">

</form>

1 个答案:

答案 0 :(得分:0)

您的问题是每次运行 exam.php 页面时都将$qno设置为1.

因此,当您第一次运行代码时,$qno将为1,因为$_POST['next'] 未设置问题编号1 将是所示。当您点击下一个时,再次$qno将再次变为1,这次因为$_POST['next'] 设置问题编号2 将会显示。从现在开始,您只会看到问题编号2

因此,您的一个解决方案是将问题编号存储在会话变量中。你的代码将是这样的:

<?php
session_start();
require_once('connect.php');

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

$q="select * from `uquestion` where `qno`='".$_SESSION['qno']."' and `uname`='{$_SESSION['user']}'";
?>