2013-10-28 67 views
0

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

enter image description here

我一直盯着它几乎一天和我来,我被卡住的结论。 您能否给我提供一些想法,概念甚至样本代码?

TL;博士:比较table1.correct_answer到table2.student_answer然后table2.result

+0

这里有什么问题? – Sliq

+0

问题已解决,谢谢您的关心:) –

回答

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]"); 
    } 
} 

希望有所帮助。

+0

非常感谢您给我一个解决问题的总体想法!非常感激 :) –

2

表1应该有某种ID提供数据。表2需要一个引用Table1s ID作为外键的列。

+0

您好, 谢谢您的回答。我忘记提及你的建议在我提问之前已经实施。你可以提供一个示例代码来处理table2.result的数据吗? –

+0

您应该首先阅读表1(“选择*从表1中”)的问题。然后遍历结果并为每一行读取Table2中的行,其中引用id等于该行中的id(“Select * From Table 2 WHERE reference = row.id”)。另一种解决方案是关节,但我认为这种手动方式更容易实现和理解。 – tea2code