我有以下代码从数据库中提取随机值。
$result = mysqli_query($con,"SELECT column1 FROM table1
ORDER BY RAND()
LIMIT 1");
while($row = mysqli_fetch_array($result))
{
echo $row['column1'];
echo "<br>";
}
目前我总共只有大约 10 个值。有时它们在刷新时连续出现不止一次。
可以修改查询以显示不是当前值的随机值吗?
为此,您需要以某种方式记住最后一行。然后做这样的事情
$result = mysqli_query($con,"SELECT column1 FROM table1
where id_of_your_row != ".mysqli_real_escape_string($id_of_your_last_row)."
ORDER BY RAND()
LIMIT 1");
为了记住最后一行,您可以使用会话。
你的整个代码可能看起来像这样。
// 会话需要开始
$result = mysqli_query($con,"SELECT column1 FROM table1
where column1 != ".(isset($_SESSION["lastid"]) ? mysqli_real_escape_string($_SESSION["lastid"]) : '')." ORDER BY RAND()
LIMIT 1");
while($row = mysqli_fetch_array($result))
{
echo $row['column1'];
$_SESSION["lastid"] = $row['column1'];
echo "<br>";
}