如何使用php以随机方式显示mysql的输出

时间:2014-06-03 09:43:09

标签: php mysql

我想以随机方式使用php显示mysql的输出。默认情况下,整个数组将按顺序显示。

echo "<table border='1'>

</tr>
<tr>
<th>User ID</th>
<th>User </th>
<th>Site </th>
<th>IP Address</th>
<th>Date</th>
</tr>";

while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
 echo "<td>" . $row['userID'] . "</td>";
  echo "<td>" . $row['user_name'] . "</td>";
  echo "<td>" . $row['site_name'] . "</td>";
  echo "<td>" . $row['ip_address'] . "</td>";
  echo "<td>" . $row['date'] . "</td>";
   echo "</tr>";
  }
echo "</table>";

我希望输出在每次访问时随机显示。

即。 row1显示在输出顶部的第一次访问时。 row10显示在输出顶部的第二个访问位置上。 row13显示在输出顶部的第3个访问位置上。

感谢您的建议和帮助。

2 个答案:

答案 0 :(得分:2)

您可以将mysql rand()用于此目的:

例如:

SELECT * FROM myTable ORDER BY RAND();

答案 1 :(得分:1)

您可以在SQL查询中使用ORDER BY RAND()

SELECT * FROM `table_name` ORDER BY RAND()

你也可以使用shuffle($my_array);

来改组你的php数组

您也可以使用

function shuffle_assoc($list) { 
  if (!is_array($list)) return $list; 

  $keys = array_keys($list); 
  shuffle($keys); 
  $random = array(); 
  foreach ($keys as $key) { 
    $random[$key] = $list[$key]; 
  }
  return $random; 
}