2013-06-04 41 views
2

我確定這不是很難,但我似乎無法自己弄清楚。從php中取出名字的隨機順序

我有一個名稱列表的MySQL數據庫,並使用以下內容將名稱組裝到一個逗號分隔列表中。

$emailresult = mysql_query("SELECT * from leaddist") 
     or die(mysql_error()); 
     while($row = mysql_fetch_array($emailresult)){ 
     $repemail .= $row['email'] . ", "; 
     } 
     echo $repemail; 

這個輸出是這樣的: 1,名稱2,名稱3,名稱4,NAME5

我的問題是,什麼是一些方法混洗成: NAME3,NAME1 NAME4,NAME5,NAME2

那麼當再次執行時,它會像 名4,1,名稱,NAME5等等......

+3

在阿里納斯...不使用PHP老的MySQL連接器和使用庫MySQLi或PHP PDO,而不是 – Terence

回答

7

您可以使用MySQL這樣的:

SELECT * FROM `leaddist` ORDER BY RAND() 

注意,這可能是性能的關鍵,如果表是真的大,但應該小套間以及中等大小的表

+1

哇,這是很容易, 謝謝。表中只有5個名字。 – user1789437

+0

很高興我幫你。是的,5行可以考慮*小尺寸*;) – hek2mgl

1

你可以嘗試檢索SQL已經隨機:

SELECT email 
FROM leaddist 
ORDER BY RAND() 

注意:如果您只需要電子郵件列,您應該在查詢中指定它。儘量避免在選擇中使用*。

+0

那麼這只是一個例子,這個想法反正是一樣的。 – Wallack

+0

不要擔心,你甚至不需要註冊它。你的是最準確的,但是謝謝你! – Wallack

1

你會錯誤的。你正在建立一個字符串。你應該建立一個數組,然後使用內置的PHP shuffle功能:

$emails = array(); 
while($row = mysql_fetch_array($emailresult)){ 
    $emails[] = $row['email']; 
} 
shuffle($emails); 

$repemail = implode(',', $emails); 
+0

我也喜歡這個,謝謝! – user1789437