如何在另一个PHP文件中引用随机数据?

时间:2019-05-02 19:04:29

标签: php html mysql

我想创建一个测验网站,用户从选定的主题中获得5个随机问题,他们必须从4个答案中选择正确的答案。之后,分数计算器php文件将尝试分析已发送的答案并基于它们建立分数。如何检查发送的答案是否正确?

数据库具有以下结构: 每个问题都有一个ID,一个问题,4个答案(A,B,C,D),带有正确答案指示符的列(因此,varchart只能是一个字母)和一个主题ID,这是一个外键。 制作完测试表格后,我尝试以不同的方式指代每个随机问题,并将问题的索引用作隐藏元素,但我没有成功,分数计算器php在第一个正确答案和分数之后停止工作之后显示的不是真实的,这是不正确的。我应该申请什么?

这是我的测验表格:

<form action="points.php" method="post">
        <?php
            require 'dbh.inc.php';
          $sql="SELECT * FROM questions where QuestTopic='".$_POST['topic']."' order by rand() limit 5";
          $req=mysqli_query($conn, $sql);
            $i=1;
          $_SESSION['topicchosen']=$_POST['topic'];
            while($row = mysqli_fetch_assoc($req)) {
                echo $row["Question"]."<br>";
                $rname="rn".$i;
            $rindex="rb".$i;
            $i++;
                echo "<input type='radio' name='".$rname."' value='A' checked>";
                echo $row["AnsA"]."<br>";
                echo "<input type='radio' name='".$rname."' value='B'>";
                echo $row["AnsB"]."<br>";
                echo "<input type='radio' name='".$rname."' value='C'>";
                echo $row["AnsC"]."<br>";
                echo "<input type='radio' name='".$rname."' value='D'>";
                echo $row["AnsD"]."<br>";
            echo "<input type='hidden' name='".$rindex."' value='".$row["QuestNum"]."'>";
          }
            $conn->close();
        ?>

这是我的积分计算器

  include "dbh.inc.php";
                            $sql="SELECT * FROM questions where QuestTopic='".$_SESSION['topicchosen']."'";
                            $req=mysqli_query($conn, $sql);
                            $points=0;
                            $i=1;
                            while ($row=mysqli_fetch_assoc($req)){
                                    $rname="rn".$i;
                                    $rindex="rb".$i;
                                    if($_POST[$rindex]==$row['QuestNum']) {
                                      if ($_POST[$rname]==$row['CorrectAns']) {
                                          $points+=5;
                                        }
                                        $i++;
                                      }
                            }

                            echo $points;

0 个答案:

没有答案