使用php从mysql中提取名称的随机顺序
Posted
技术标签:
【中文标题】使用php从mysql中提取名称的随机顺序【英文标题】:Shuffle order of names pulled from mysql with php 【发布时间】:2013-05-31 01:07:06 【问题描述】:我确定这并不难,但我自己似乎无法弄清楚。
我有一个带有名称列表的 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,姓名5
我的问题是,有哪些方法可以将其改组为: 名字3,名字1,名字4,名字5,名字2
然后当再次执行时,它会像 名字4、名字1、名字2、名字5等等……
【问题讨论】:
旁注...不要使用 php legacy mysql 连接器...改用 mysqli 或 PHP PDO 【参考方案1】:你可以用mysql来做这个:
SELECT * FROM `leaddist` ORDER BY RAND()
请注意,如果表确实很大但应该非常适合中小型表,这可能对性能至关重要
【讨论】:
很高兴我帮助了你。是的,可以考虑 5 行 smallsized ;)【参考方案2】:您可以尝试检索已经随机化的 SQL:
SELECT email
FROM leaddist
ORDER BY RAND()
注意:如果您只需要电子邮件列,则应在查询中指定它。尽量避免在选择中使用 *。
【讨论】:
嗯,这只是一个例子,反正想法是一样的。 别担心,你甚至不需要投票。你的是最准确的,但谢谢!【参考方案3】:你做错了。你正在构建一个字符串。您应该构建一个数组,然后使用 PHP 内置的 shuffle 函数:
$emails = array();
while($row = mysql_fetch_array($emailresult))
$emails[] = $row['email'];
shuffle($emails);
$repemail = implode(',', $emails);
【讨论】:
以上是关于使用php从mysql中提取名称的随机顺序的主要内容,如果未能解决你的问题,请参考以下文章