PHP - 如何比较两列?

时间:2013-10-28 14:55:16

标签: php mysql

我在解决此测验计划时遇到问题。我目前只是插入一行。我将详细解释它:假设我有两个表,名为“表1”和“表2”。表1列出了老师输入的所有问题和正确的答案。表2包含学生给出的答案。如何“比较”来自2个表格的数据,然后将表格2中学生答案的“结果”(无论是“正确”还是“错误”)插入表2?下面的图片是我想要实现的那种表格。

enter image description here

我已经待了将近一天了,我得出的结论是我被困住了。 您可以向我提供一些想法,概念甚至示例代码吗?

tl; dr:将table1.correct_answer与table2.student_answer进行比较,然后为table2.result提供数据

2 个答案:

答案 0 :(得分:2)

Table1应该有某种ID。 Table2需要一个列,其中引用Table1s ID作为外键。

答案 1 :(得分:1)

考虑到两个表都有id列,问题和答案的顺序相同(具有相同的id)。你可以这样做:

首先将所有更正答案放入数组中。

$result1 = mysql_query("Select * From table1");
while ($correct_row = mysql_fetch_array($result1) ){
    $correct[ $correct_row[id] ] =  $correct_row[correct_answer];
}

然后将它们与学生的答案进行比较,并在通过学生的每个答案时更新结果表。

$result2 = mysql_query("Select * From table2");
while ($student_row = mysql_fetch_array($result2) ){
    if ($student_row[student_answer] == $correct[ $student_row[id] ]  ){
        mysql_query("UPDATE table2 SET result=correct WHERE id=$student_row[id]");
    } else {
        mysql_query("UPDATE table2 SET result=wrong WHERE id=$student_row[id]");
    }
}

希望有所帮助。