我有以下代码从数据库中提取随机值。
$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个值。有时它们在刷新时连续出现不止一次。
可以修改查询以显示不是当前值的随机值吗?
答案 0 :(得分:1)
为了做到这一点,你需要以某种方式记住最后一行。 然后做这样的事情
$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>";
}