通过PHP中选中的单选按钮从数据库中检查正确答案


Checking the correct answer from the database by a checked radio button in PHP

我正在创建一个在线评估。我只在一页中随机显示所有问题。我很难在数据库中为选中的单选按钮检查正确答案。我不知道该做什么以及如何做的逻辑。

这是我的php代码,用于随机显示问题,

$view_questions=mysql_query("SELECT * FROM questions ORDER BY RAND()");

这是我的html代码与php代码,

<form name="" method="POST">
                </br><h4># of Questions</h4>
                <?php
                $i=1;
                    while($row=mysql_fetch_array($view_questions))
                    {
                ?>
                <div class="view_question fsize">
                    <p align="justify"><?php echo $i;?>) <?php echo $row['QUESTION'];?></p>
                    <div class="indent-question">
                        <input type="radio" value="1" id="" name="radio[<?php echo $row['QUESTION_NO'];?>]"> <?php echo $row['ANSWER_1'];?>
                        </br>
                        <input type="radio" value="2" id="" name="radio[<?php echo $row['QUESTION_NO'];?>]"> <?php echo $row['ANSWER_2'];?>
                        </br>
                        <input type="radio" value="3" id="" name="radio[<?php echo $row['QUESTION_NO'];?>]"> <?php echo $row['ANSWER_3'];?>
                        </br>
                        <input type="radio" value="4" id="" name="radio[<?php echo $row['QUESTION_NO'];?>]"> <?php echo $row['ANSWER_4'];?>
                    </div>
                </div>
                <?php
                $i++;
                    }
                ?>
                <center><button id='next<?php echo $i;?>' class='next btn btn-success' name="finish" type='submit'>Finish</button></center>
            </form>

表名:问题

表字段:QUESTION_NO、QUESTION、ANSWER_1、ANSWER_2、ANSWER.3、ANSWEL_4、ANSWER

非常简单

将您的问题Id存储在单选按钮和复选框中的值中,只有那些被选中的值被提交,在下一页提交表单后比较您的代码,我希望您能理解,我想说的是

您应该有这样的数据库结构。。

Table 1: Questions
Fields: que_id, question
Table 2: Answers
Fields: ans_id, que_id, answer, correct_ans, points
Table 3: Results
Fields: que_id, ans_id

添加question时,question和que_id将存储在数据库中。。然后,您将添加多个可能的答案,这些答案存储在参考que_id的answers表中。。

您需要更改GUI的查询,以便使用联接从不同的表中获取问题和答案。所以GUI应该是这样的。。

<form name="" method="POST">
                </br><h4># of Questions</h4>
                <?php
                $i=1;
                    while($row=mysql_fetch_array($view_questions))
                    {
                ?>
                <div class="view_question fsize">
                    <p align="justify"><?php echo $i;?>) <?php echo $row['QUESTION'];?></p>
                    <div class="indent-question">
                        <input type="radio" value="<?php echo $row['ans_id']; ?>" id="" name="radio[<?php echo $row['QUESTION_NO'];?>]"> <?php echo $row['ANSWER_1'];?>
                        </br>
                        <input type="radio" value="<?php echo $row['ans_id']; ?>" id="" name="radio[<?php echo $row['QUESTION_NO'];?>]"> <?php echo $row['ANSWER_2'];?>
                        </br>
                        <input type="radio" value="<?php echo $row['ans_id']; ?>" id="" name="radio[<?php echo $row['QUESTION_NO'];?>]"> <?php echo $row['ANSWER_3'];?>
                        </br>
                        <input type="radio" value="<?php echo $row['ans_id']; ?>" id="" name="radio[<?php echo $row['QUESTION_NO'];?>]"> <?php echo $row['ANSWER_4'];?>
                    </div>
                </div>
                <?php
                $i++;
                    }
                ?>
                <center><button id='next<?php echo $i;?>' class='next btn btn-success' name="finish" type='submit'>Finish</button></center>
            </form>

之后,当用户选择答案时,ans_id将与que_id一起保存在结果表中,您可以从中管理所有信息和比较。。

将Answersquestions设置为单选按钮的值

<input type="radio" value="ANSWER1" name="name">
<input type="radio" value="ANSWER2" name="name">

在php代码中用正确的应答检查提交的值

从数据库中获取正确的答案并将其保存在var 中

$query "SELECT correct_answer FROM TABEL_NAME";

并在var correct_a中获取查询,例如

$user_answer = $_POST['name'];
if($user_answer == $correct_a)
   return true 
else
   return false