1

我有以下代码从数据库中提取随机值。

$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 个值。有时它们在刷新时连续出现不止一次。

可以修改查询以显示不是当前值的随机值吗?

4

1 回答 1

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>";
}
于 2013-06-12T23:07:43.703 回答