0

我正在尝试进行测验并使用以下内容来比较结果,它似乎可以工作并输出一次,但仅此而已,即使测验中有两个问题,我也不会再处理任何记录,所以它应该输出正确,正确或正确,不正确等。

          <?php
    // Make a MySQL Connection
    // Construct our join query
    $query = "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" or die("MySQL ERROR: ".mysql_error());

    $result = mysql_query($query) or die(mysql_error());


    // Print out the contents of each row into a table 
    while($row = mysql_fetch_array($result)){
        if ($row['correctanswer'] == $row['quizselectanswer']){
            echo 'CORRECT';}
            else { echo 'INCORRECT';
            }

        echo "<br />";
    }
    ?>

编辑>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>

表结构如下>>

itsnb_chronoforms_data_answerquiz cf_id , cf_uid , cf_created , cf_modified , cf_ipaddress, cf_user_id, questionID, quizselectanswer ,quizID ,userID

itsnb_chronoforms_data_createquestions cf_id ,cf_uid,cf_created ,cf_modified, cf_ipaddress, cf_user_id, quizID, questionID, quizquestion, quizanswer1, quizanswer2, quizanswer3, quizanswer4, questionformat ,正确答案

4

1 回答 1

2

删除 selectanswer=correctanswer 条件时,您会得到四个答案(这确实不是您想要的,因为您想同时获取正确和不正确的答案),因为您没有关联答案 ID。

$query = "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" or die("MySQL ERROR: ".mysql_error());

应该:

$query = "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.questionID = q.questionID" or die("MySQL ERROR: ".mysql_error());

在没有该条件的情况下,您将获得 questionID 的叉积。您看到的四个记录(如果 questionID 是 1 和 2):

  1. a.questionID=1 和 q.questionID=1
  2. a.questionID=1 和 q.questionID=2 (不想要这个)
  3. a.questionID=2 和 q.questionID=1 (或这个)
  4. a.questionID=2 和 q.questionID=2
于 2012-11-27T16:31:42.133 回答