我正在做一个测验,我将问题存储在表格中,每次提出一个问题时,我都希望显示另一个问题。我试过使用 rand() :

select * from quiz order by rand() LIMIT 1

但行正在重复。

还有什么我可以使用的地方我可以获得随机行但不会再次遇到相同的问题?

最佳答案

您可以使用 session 和测验 ID。

例如

select * from quiz order by rand() LIMIT 1

在 session 测验中添加测验 ID:
if(!$_SESSION['quiz']) { $_SESSION['quiz'] = array(); }
$_SESSION['quiz'][] = $row['id'];

并调用 NOT IN:
$session = implode(", ", $_SESSION['quiz']);
$query = "select * from quiz WHRE `id` NOT IN (".$session.") order by rand() LIMIT 1";

关于php - 从数据库返回随机行而不重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12685823/

10-13 02:16