我确定这并不难,但我似乎无法自己解决这个问题。
我有一个带有名称列表的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等......
答案 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);