获取数据库值按钮点击一个接一个

tyg4sfes  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(288)

嗯,我有一个页面,我想一个接一个地显示数据库中存储的项目。一个接一个的意思是点击一个按钮,下一个项目就会出现(顺便说一下,在我的情况下,项目是问题)。
所以我写了代码。我遇到的问题是循环只工作了一次。我的意思是,当单击“下一步”按钮时,我会显示下一个项目,但当我再次单击“下一步”时,什么都不会发生。这是密码。。

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

7tofc5zh1#

您正在覆盖 $_SESSION['qno'] 在每一次呼叫中 0 在第三行。首先,这使得变量集 !isset($_SESSION['qno']) 永远平等 false . 所以你总是走进 else 当你有时间的时候,加1到0 $_POST['next'] ,也就是说除了第一次通话以外的每一次。

if (!isset($_SESSION['qno'])) {
    // first call (no session exists): get first question
    $_SESSION['qno'] = 1;
} else if (isset($_POST['next'])) {
    // click on next button: increase question ID by 1
    $_SESSION['qno']++;
}
// neither first init nor next button: page load with existing session
4uqofj5v

4uqofj5v2#

问题是你的第三行,总是你提交表单,你的会话被设置为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;
    }
}

相关问题