我正在尝试在PHP和MySQL中开发一个quizz应用程序。现在我有一个案例,我必须从按钮点击数据库中获取一个随机行。而下一次出现的问题不应该出现。
我做的是,我从数据库中选择了随机行,然后将会话变量的id存储为数组。并且下次在获取该随机行的数据时检查问题ID是否位于该阵列上。如果问题ID已经在该数组上,那么重新加载页面以获得新问题,否则显示问题。
我使用的代码如下 Code to select random and unique row
Code to display value and save value on array
抱歉!由于格式问题,我无法在此处输入代码。
答案 0 :(得分:0)
使用您的方式,当向用户显示数据库上的每个问题时,页面将进入无限重定向循环。您可以使用如下查询:
SELECT * FROM tbl_question
WHERE question_id NOT IN ([previously shown ids]) AND is_active='yes'
ORDER BY RAND() LIMIT 1
这样,如果你没有得到任何结果,你会假设所有问题都已经显示给用户,并且当问题存在时你不需要页面刷新来切换到另一个问题。会话变量。
在您的代码中,修改:
$where = "is_active='yes'"
到
$where = "is_active='yes' AND id NOT IN (" . implode(",", $_SESSION["ques"]) . ")";