有没有办法在我的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'];
}
答案 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;
}
}