在在线测验系统上总结好答案时出现问题

时间:2018-11-05 23:47:00

标签: php mysql input sum

我正在尝试为驾驶学校建立在线测验系统。 他们要求我提供将在数据库中添加的问题和答案。我确实做到了,但是问题是我很难知道答案是否正确。

我用来生成表单的代码是这样的:

 $sql = mysql_query("SELECT * FROM questions ORDER BY question_id ASC");


                        while($row = mysql_fetch_array($sql)){
                            echo ' 

                            <section>
                            <h1>'.$row['question'].'?</h4>
                                </br> <hr> </br>

                                <div class="row">
                                <div class="col-sm-4 foto pb-2">
<img  src="" style="max-width:100%;height: auto;" >
</div>
   <div class="col-12 col-sm-8">
   <div class="pergjigjet mb-2 pl-2 pr-2" style="padding-left: .5rem!important;padding-right: .5rem!important;margin-bottom: .5rem!important;">
   <div class="pergjigje">
   <label><input type="checkbox" name="q_'.$row['question_id'].'_a_1" value="1"> '.$row['answer1'].'.</label>
   </div>
   <div class="pergjigje">
   <label><input type="checkbox" name="q_'.$row['question_id'].'_a_2" value="1"> '.$row['answer2'].'.</label>
   </div>
   <div class="pergjigje"><label>
   <input type="checkbox" name="q_'.$row['question_id'].'_a_3" value="1"> '.$row['answere'].'.</label>
   </div>
   </div>
</div>
</section>

测验共有30个问题,最多3个正确答案。 如果您没有选择所有正确的答案,那肯定是错误的。这意味着,如果您没有为问题选择正确的答案,就不会获得积分。

发布数据的数组是这个。

    array(4) {
  ["q_1_a_1"]=>
  string(1) "1"
  ["q_1_a_2"]=>
  string(1) "1"
  ["q_2_a_1"]=>
  string(1) "1"
  ["q_2_a_2"]=>
  string(1) "1"
}

桌子是这个,

id, 
question_id, 
exam_id, 
question, 
answer1,  
answer2,
answer3,
CorrectAnswers,
QuestionPoints

我以这种格式存储正确答案

1,2

P.S客户要求我使用mysql,而不是mysqli或PDO

1 个答案:

答案 0 :(得分:2)

最好将数组样式的名称用于答案复选框,并将答案编号放在value中,例如

   <label><input type="checkbox" name="q_'.$row['question_id'].'[]" value="1"> '.$row['answer1'].'.</label>
   </div>
   <div class="pergjigje">
   <label><input type="checkbox" name="q_'.$row['question_id'].'[]" value="2"> '.$row['answer2'].'.</label>
   </div>
   <div class="pergjigje">
   <label><input type="checkbox" name="q_'.$row['question_id'].'[]" value="3"> '.$row['answer3'].'.</label>
   </div>

然后,在提交表单时,$_POST['q_1']将是所有选定答案的数组。您可以使用implode(",", $_POST['q_1'])将其转换为字符串,然后将该字符串与表格中正确答案的列表进行比较。