在PHP测验中删除记录后无法获得下一个问题

时间:2019-03-19 11:52:29

标签: php

您好,我正在开发一个基于在线测验的应用程序,但是在接受测试时却遇到了一个问题。我正在不同的表中插入问题和多项选择,效果很好。对于删除和删除也可以正常工作。考试时出现的问题。

例如,如果我添加了问题并从中途删除了一个问题,那么在参加考试时我们不会得到下一个问题。这是我的表格。

Questions Database Table:

question_number  question_no  text  status
1                 1           html    1
2                 2           php     1
3                 2           html    0
4                 3           html    1

选择数据库表:

id   question_number   is_correct  text   status
1       1                1        abc       1
2       1                0        abc       1
3       1                0        abc       1
4       1                0        abc       1 
5       2                0        abcdfd    1
6       2                1        abcdsf    1
7       2                0        abcdsf    1
8       2                0        abcsdfg   1
9       3                1        abchdfgh  0
10      3                0        abfdhdfc  0
11      3                0        afdhgbc   0
12      3                0        adfhbc    0 
13      4                1        abchdfgh  1
14      4                0        abfdhdfc  1
15      4                0        afdhgbc   1
16      4                0        adfhbc    1 

这里总共有4个问题,其中3个处于活动状态,一个处于非活动状态,因此我需要显示这些活动问题。但是对我来说,对于第三个问题,它只显示两个问题,显示的内容如下图所示。

enter image description here

这是此代码:

<?php 
$query ="SELECT * FROM questions where status='1'";
//Get results
 $results = $mysqli->query($query) or die($mysqli->error.__LINE__);
 $total = $results->num_rows;
 ?>
 <a href="question.php?n=1" class="start">Start Quiz</a>

Question.php文件:

<?php
$number = (int) $_GET['n']; 
$query = "SELECT * FROM `questions` WHERE status='1'";
//Get result
$results = $mysqli->query($query) or die($mysqli->error.__LINE__);
$total = $results->num_rows;        

$query = "SELECT * FROM `questions`
            WHERE question_number = $number AND status='1'";
//Get result

$result = $mysqli->query($query) or die($mysqli->error.__LINE__);

$question = $result->fetch_assoc();

$query = "SELECT * FROM `choices`
            WHERE question_number = $number AND status='1'";
//Get results
$choices = $mysqli->query($query) or die($mysqli->error.__LINE__);
 ?> 
        <div class="current">Question <?php echo $question['question_number']; ?> of <?php echo $total; ?></div>
        <p class="question">
            <?php echo $question['text']; ?>
        </p>
        <form method="post" action="process.php">
            <ul class="choices">
                <?php while($row = $choices->fetch_assoc()): ?>
                    <li><input name="choice" type="radio" value="<?php echo $row['id']; ?>" /><?php echo $row['text']; ?></li>
                <?php endwhile; ?>
            </ul>
            <input type="submit" value="Submit" />
            <input type="hidden" name="number" value="<?php echo $number; ?>" />
        </form>

如果我这样给出网址,则显示问题

http://www.example.com/admin/question.php?n=4   

然后它显示第四个问题,如果在URL n = 3中则不显示问题。

0 个答案:

没有答案