语句顺序时随机


Randomising while statement order

我一直在摆弄搜索引擎,我正试图让while语句运行并以随机顺序返回结果。这是我现在的密码。

if ($numrows > 0) {
while ($row = mysql_fetch_assoc($query)) {
    $id = $row['id'];
    $title = $row['title'];
    $description = $row['description'];
    $keywords = $row['keywords'];
    $link = $row['link'];
    echo "<div id='resultbox'><h3><a href='$link'>$title</a></h3><br><p>$description</p></div>";

}

理论上,我需要while语句来完全随机地运行和显示结果。

有没有办法做到这一点?

谢谢!

您可以在查询中执行order by rand()以随机排序结果。

我认为您不能在同一while语句中执行此操作。我认为你必须把查询的结果放在一个列表中,然后通过使用它的大小,你可以使用一个随机数生成器,并使用它们的索引从中检索元素。

您也可以打乱列表,然后按顺序从中检索。

  1. 使用Foreach而不是一段时间
  2. 提前数好你的成绩
  3. 生成一个数组,该数组的int值最多为结果的计数
  4. 使用本地php函数对该数组进行随机化
  5. 在进行foreach($k=>$v-kind)时,使用加扰数组中的下一个数字,然后取消设置

除了使用SELECT * FROM search WHERE row1='1' ORDER BY rand()

你可以:

while ($row = mysql_fetch_assoc($query)) {
    $data[] = $row;
}
shuffle($data);
foreach($row as $k=>$v) {
    $id = $row['id'];
    $title = $row['title'];
    $description = $row['description'];
    $keywords = $row['keywords'];
    $link = $row['link'];
    echo "<div id='resultbox'><h3><a href='$link'>$title</a></h3><br><p>$description</p</div>";
}