用php从mysql中提取名称的随机顺序

时间:2013-06-04 15:01:24

标签: php mysql random shuffle

我确定这并不难,但我似乎无法自己解决这个问题。

我有一个带有名称列表的mysql数据库,我使用以下命令将名称组合成逗号分隔列表。

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

这输出类似于: name1,name2,name3,name4,name5

我的问题是,有什么方法可以将其改组为: name3,name1,name4,name5,name2

然后当再次执行时,它会是这样的 名称4,name1,name2,name5等......

3 个答案:

答案 0 :(得分:7)

您可以使用mysql:

SELECT * FROM `leaddist` ORDER BY RAND()

请注意,如果表格非常较大,但这对于中小型表格来说非常适合

答案 1 :(得分:1)

您可以尝试检索已经随机化的SQL:

SELECT email
FROM leaddist
ORDER BY RAND()

注意:如果您只需要电子邮件列,则应在查询中指定它。尽量避免在选择中使用*。

答案 2 :(得分:1)

你错了。你正在构建一个字符串。您应该构建一个数组,然后使用内置的PHP shuffle函数:

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

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