我正在使用 AJAX、PHP 和 MySQL 构建一个小型测验/测试引擎。所有数据(问题、答案等)都存储在数据库中。
我遇到的问题是我无法找到如何过滤掉已登录用户已回答的问题,因此导致问题被重复和永无止境的测验/测试。
当您单击“下一个问题”按钮时,会发送一个 AJAX 请求来submit_answer.php
提交答案(将行添加到user_answers
表中),它还会发送一个请求get_question.php
,然后返回问题信息(问题、答案等)的 JSON,但是我似乎无法不选择已回答的问题(表中的问题user_answers
)。这是我现在所拥有的:
$question = mysql_query("SELECT *, q.id qid, q.question question_text
FROM questions q, user_answers ua
WHERE q.id != ua.question_id
AND ua.test_id = $test
AND ua.user_id = $_SESSION[userid]
ORDER BY rand()
LIMIT 1");
$q = mysql_fetch_assoc($question);
此查询应该选择具有test_id
当前测试的问题,user_id
作为当前用户,而不是在user_answers
表中。但显然,我只是做得不对。
你可以在这里看到整个get_question.php
文件:http: //pastebin.com/Td6mqp49
编辑:
这是@MadaraUchiha 要求的我的表结构:
questions
user_answers