2013-10-28 66 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