2012-11-27 45 views
0

有什麼方法可以將我的while查詢的內容放在下面,並在我的php腳本的其他地方使用它?我想要做的是從測驗中收集答案,然後將它們與正確的答案進行比較,我遇到的問題是答案來自於一個表格,而來自另一個表格的問題,因此我目前必須運行兩個不同的答案雖然查詢,但我不能在第二個查詢使用$測驗,因爲它只是保持固定與最後一個值吐出。什麼即時通訊基本上試圖做它加載表A,看看裏面的questionID,選擇該表,並提出正確的答案。然後加載表B,查看裏面的內容,選擇與questionID相同的答案,然後使用if語句進行比較,以便如果correctanswer = actualanswer =正確,並針對每個問題遍歷此問題。雖然我碰到的主要問題是第一時間把所有正確的答案都扯掉,但是我不能那麼用它來比較。我不確定這是否是正確的做法,或者是否有更好的方法?PHP/Mysql,比較來自兩個while循環的值

尋找正確的答案:

 $result0 = mysql_query("SELECT * FROM itsnb_chronoforms_data_createquestions 
       WHERE quizID='$quizID' ORDER BY cf_id ASC"); 
     while($row0 = mysql_fetch_array($result0)) 
     { 
     $answer = $row0['correctanswer']; 
     } 

尋找實際的答案提交:

$result = mysql_query("SELECT * FROM itsnb_chronoforms_data_answerquiz 
      WHERE quizID='$quizID' AND userID='$userID' ORDER BY cf_id ASC"); 

    while($row = mysql_fetch_array($result)) 
    { 
     $quiz = $row['quizselectanswer']; 
    } 
+1

你能不能做到這一點,在SQL中加入嗎? –

回答

1

加入是最好的方式來做到這一點。但你也可以使用PHP in_array() - 功能:

$result0 = mysql_query("SELECT * FROM itsnb_chronoforms_data_createquestions  WHERE quizID='$quizID' ORDER BY cf_id ASC"); 
while($row0 = mysql_fetch_array($result0)) 
{ 
    $answers[] = $row0['correctanswer']; 
} 

而且隨後

$result = mysql_query("SELECT * FROM itsnb_chronoforms_data_answerquiz WHERE  quizID='$quizID' AND userID='$userID' ORDER BY cf_id ASC"); 

while($row = mysql_fetch_array($result)) 
{ 
    if(in_array($row['quizselectanswer'],$answers)){ 
     ...correct... 

     break; 
    } 
} 
+0

我在Dreamweaver中的IF行出現錯誤,第二個錯誤? –

+0

我忘了支架)。在頂部編輯。 – Corsair

+0

謝謝,多數民衆贊成在工作! :-) –

1
SELECT * FROM itsnb_chronoforms_data_answerquiz a, itsnb_chronoforms_data_createquestions 
q WHERE a.quizID='$quizID' AND a.userID='$userID' and q.quizID=a.quizID and 
a.quizselectanswer = q.correctanswer 

應該返回所有的正確答案。如果您還想要錯誤的答案,則需要在兩個表上進行外連接。