[英]echo random id numbers from mysql database without repeating numbers?
如何在不重復數字的情況下回顯mysql數據庫中的隨機id號碼?
這是我的示例代碼:
$query = mysql_query("SELECT * FROM store");
$number=mysql_num_rows($query);
for ($count=1; $count<= $number ; $count++)
{
$id = mysql_query ("SELECT id FROM store ORDER BY RAND() LIMIT $number");
$id = mysql_fetch_assoc($id);
$id = $id['id'];
echo $id;
}
它將回顯六個隨機數,但是具有“1 1 3 2 4 5”的實例,其中1被回顯兩次而不是一次。 提前致謝
只需按rand訂購結果並限制其數量,您的ID必須是唯一的:
SELECT * FROM store ORDER BY RAND() LIMIT 0,6
問題是,您在循環內部執行SELECT
,而不是選擇一次並循環結果。
$query = mysql_query("SELECT * FROM store");
$number=mysql_num_rows($query);
$result = mysql_query ("SELECT id FROM store ORDER BY RAND() LIMIT $number");
while ($row = mysql_fetch_assoc($result)) {
echo $row["id"];
}
BTW: SELECT *
來獲取記錄集的數量很難看,使用SELECT count(id)
代替
如果你要離開php,你可能會更好(更快,更容易,沒有鎖定問題)來隨機化你的數字。 循環中的SQL查詢是反模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.