簡體   English   中英

從mysql數據庫中回顯隨機id號而不重復數字?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM