PHP / Mysql,比较两个while循环的值

时间:2012-11-27 14:01:30

标签: php mysql while-loop

有没有办法在我的php脚本的其他地方使用我的while查询的内容?我想要做的是从测验中收集答案,然后将它们与正确的答案进行比较,我遇到的问题是答案来自一个表和另一个表的问题,所以我目前要运行两个不同的虽然查询,但我不能在第二个查询中使用$测验,因为它只是保持固定与它吐出的最后一个值。我基本上试图加载表A,查看questionID内部,选择该表并提取正确的答案。然后加载表B,查看其中,选择具有相同questionID的答案,然后使用if语句与to进行比较,以便correctanswer = actualanswer =正确,并循环对于每个问题都要这样做。我遇到的主要问题是第一个问题,而第一个问题就是把所有正确的答案都拉出来,但是我不能在另一个问题中使用它来进行比较。我不确定这是否是正确的做法,或者是否有更好的方法?。

寻找正确的答案:

      $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']; 
     }

2 个答案:

答案 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

应该返回所有正确的答案。如果您还想要错误的答案,则需要在两个表上进行外连接。

答案 1 :(得分: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;
    }
}