在mysql表中我有30行。想要在同一页面的3个不同位置显示1个随机行数据而不重复该行。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:5)
这样的事情怎么样?每个array_pop()都会从数组中删除一个值,因此你永远不会得到两次相同的值。
// Get your data into an array (since there's only 30 rows):
$result = mysqli_query($connection, "SELECT * FROM table LIMIT 3;");
$rows = array();
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$rows[] = $row;
}
// Randomise the array:
shuffle($rows);
// Get first random value:
$row = array_pop($rows);
print ($row['value']);
// Get second random value:
$row = array_pop($rows);
print ($row['value']);
// etc...