在我的网站上,我有一个页面,用户可以一次回答一个问题。 提供的问题存储在问题表中。 当用户回答问题时,它会存储在答案表中。 在回答问题之后,它会转到下一个问题。
我的代码的工作方式现在是从问题表中选择一个问题,然后加入答案表WHERE answers.id IS NULL
。 (用户没有回答这个问题。)
我需要它的工作方式与上面类似,不过它还需要检查问题是否已被用户回答,以及是否显示它并继续用户未回答的下一个问题。
我希望自己能够很好地解释自己。
我正在使用的代码
$db = db_open();
$query = "SELECT
questions.id,
questions.question
FROM questions
LEFT JOIN answers ON questions.id = answers.question
WHERE answers.id IS NULL
GROUP BY questions.id";
$result = db_query($db,$query);
$result = db_fetch_array($result);
$default_question = array("id"=>$result["id"],"question"=>$result["question"]);
问题表
id question
1 This is a question
答案表
id user question answer
1 1 1 This is an answer
答案 0 :(得分:1)
试试这个:
$user_id = getUserIdOrSomethingLikeThat();
$query = "SELECT
questions.id,
questions.question
FROM questions
WHERE NOT EXISTS (
SELECT * FROM answers WHERE answers.question = questions.id AND answers.user = $user_id
)
还要考虑重构表定义。列名称令人困惑。这样的事情会更好:
问题表字段:id,body
回答表字段:id,question_id,user_id,body