单击按钮,从数据库中选择随机和唯一行

时间:2017-04-07 06:25:46

标签: php mysql arrays

我正在尝试在PHP和MySQL中开发一个quizz应用程序。现在我有一个案例,我必须从按钮点击数据库中获取一个随机行。而下一次出现的问题不应该出现。

我做的是,我从数据库中选择了随机行,然后将会话变量的id存储为数组。并且下次在获取该随机行的数据时检查问题ID是否位于该阵列上。如果问题ID已经在该数组上,那么重新加载页面以获得新问题,否则显示问题。

我使用的代码如下 Code to select random and unique row

Code to display value and save value on array

enter image description here enter image description here

抱歉!由于格式问题,我无法在此处输入代码。

1 个答案:

答案 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"]) . ")";