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

How to display items from database one by one each time a button is clicked in php

嗯,我有一个页面,我想在其中一个一个地显示存储在数据库中的项目。一个接一个地点击一个按钮,下一个项目就会出现。 (项目是顺便提一下我的问题)。

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

<?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>

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

因此,您第一次 运行 您的代码时,$qno 将为 1,因为 $_POST['next'] 未设置 将显示问题编号 1。当你点击下一步时,再次 $qno 将再次变为 1 这次因为 $_POST['next']set问题编号 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']}'";
?>