我想创建一个 PHP 页面,它从 MySQL 数据库中选择一条随机记录(一个字符串,将用作唯一的“令牌”)。我只想选择这个随机记录一次,之后再也不选择。
为此,我向表中添加了一个额外的字段(名为“numberfield”,包含 number 0
),该字段在选择特定记录时递增。这样,只能0
选择 numberfield 表字段中值为 的记录。一旦选择了随机记录,numberfield 字段就会增加到1
并且不能再选择。我正在考虑使用以下 PHP 代码:
$result = mysql_query("SELECT token FROM table WHERE numberfield < **1** ORDER BY RAND() LIMIT 0,1");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
echo $row[0];
mysql_query("UPDATE table SET numberfield=numberfield+1 WHERE token=" + $row[0] + "");
这会是正确的方法吗?有什么想法吗 ?
此外,我想避免在页面刷新时选择不同的随机记录。将“令牌”保留在缓存中的正确和最简单的方法是什么?例如,是否可以将“令牌”保留在页面刷新期间不会被覆盖的会话中,或者我是否必须使用 Ajax 等其他技术。非常感谢您的帮助和评论!