PHP - 比较单选按钮检查与数据库的正确方法

时间:2015-04-02 17:46:11

标签: php mysql mysqli

我有这个数据库设置:

除此代码外,

if($result = $db->query("SELECT * FROM questions")){
    if($count = $result->num_rows){

    while($row = $result->fetch_object()){
        echo $row->question, '<br><br>';
        echo '<input type="radio" name="q'.$row->id.'" value="a" id="q1a"><label for="q1a">' . $row->ans1 . '</label><br/>';
        echo '<input type="radio" name="q'.$row->id.'" value="a" id="q1a"><label for="q1a">' . $row->ans2 . '</label><br/>';
        echo '<input type="radio" name="q'.$row->id.'" value="a" id="q1a"><label for="q1a">' . $row->ans3 . '</label><br/>';
        echo '<input type="radio" name="q'.$row->id.'" value="a" id="q1a"><label for="q1a">' . $row->ans4 . '</label><br/>';
        echo '<input type="radio" name="q'.$row->id.'" value="a" id="q1a"><label for="q1a">' . $row->correct_ans . '</label><br/><br/>';

    }        
        $result->free();
    }
}

这给出了这个输出:

我想知道,我如何检查用户是否回答了存储在数据库中的正确答案?

我认为最好做一个if语句并检查是否没有选择正确的答案。我只是不确定如何执行此操作,如果有人能指出我正确的方向,那将会有很大的帮助。

2 个答案:

答案 0 :(得分:0)

只需给出正确答案不同的值,然后编写一个检查问题的while循环。

类似的东西(假设每个问题都有q和后面的数字):

$count = 1;
$right_answers = 0;
while ($count <= 5)    {
    if ($_POST['q'.$count] == "right")    {
        $right_answers++;
    }
    $count++;
}

$right_answers是正确答案的计数。

答案 1 :(得分:-2)

对所有单选按钮使用相同的名称,但值应该不同。单击单选按钮,您将获得一个匹配值以进行检查。