好吧,我有一个页面,我想逐个显示存储在数据库中的项目。一个接一个地意味着点击一个按钮,下一个项目应该到来。 (在我的案例中,项目是问题)。
所以我为此编写了代码。我得到的问题是循环只工作一次。我的意思是当点击下一个按钮时,我显示下一个项目,但是我再次单击“下一步”,没有任何反应。这是代码..
<?php
session_start();
$connection = mysqli_connect("localhost", "root", "", "oes_db");
$_SESSION['qno'] = 0;
if (!isset($_SESSION['qno']))
$_SESSION['qno'] = 1;
else {
if (isset($_POST['next'])) {
$_SESSION['qno'] += 1;
}
}
$select = "select * from oes_question where que_id='" . $_SESSION['qno'] . "'";
$result = mysqli_query($connection, $select);
if ($result) {
while ($row = mysqli_fetch_array($result)) {
$qno = $row['que_id'];
$question = $row['que_desc'];
$op1 = $row['ans1'];
$op2 = $row['ans2'];
$op3 = $row['ans3'];
$op4 = $row['ans4'];
$answer = $row['true_ans'];
}
}
?>
<html>
<body>
<form name="exam" method="post" action="que.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>
</body>
</html>
答案 0 :(得分:0)
在第3行的$_SESSION['qno']
页面的每次调用中,您都会覆盖0
。首先,这会使变量设置,这意味着!isset($_SESSION['qno'])
将始终等于{{1} }}。因此,当您有false
时,您总是进入else
并添加1到0,这意味着每次除了第一次通话之外。
$_POST['next']
答案 1 :(得分:0)
问题是你的第三行,总是提交表格,你的会话是0,当你总和+ = 1时,总是把1。
尝试
session_start();
$connection = mysqli_connect("localhost", "root", "", "oes_db");
if (!isset($_SESSION['qno']))
$_SESSION['qno'] = 1; //or 0 if your item start at 0
else {
if (isset($_POST['next'])) {
$_SESSION['qno'] += 1;
}
}