0

有什么方法可以获取下面我的 while 查询的内容并在我的 php 脚本中的其他地方使用它?我想做的是从测验中收集答案,然后将它们与正确答案进行比较,我遇到的问题是答案来自一张桌子,而问题来自另一张桌子,所以我目前不得不运行两个不同的while 查询,但我不能在第二个查询中使用 $quiz,因为它只是保持固定在它吐出的最后一个值。我基本上试图做的是加载表A,在里面寻找questionID,选择那个表并拉出正确的答案。然后加载表 B,查看里面,选择相同的答案,questionID然后使用 if 语句比较 to,这样 if 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']; 
     }
4

2 回答 2

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

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

于 2012-11-27T14:12:02.343 回答
1

加入可能是做到这一点的最佳方式。但你也可以使用 php in_array()-Function:

$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;
    }
}
于 2012-11-27T14:18:29.870 回答