【问题标题】:Selecting random images using php and mysql [duplicate]使用php和mysql选择随机图像[重复]
【发布时间】:2015-05-12 16:34:52
【问题描述】:

我有一个包含图像路径的表格,就像这样

id i_id img         date

1   0   im.png  2015-05-12
2   0   im1.png 2015-05-12
3   0   im2.png 2015-05-12

我正在尝试使用 php 中的 src 标签回显图像,但我需要做的是我需要以随机方式回显图像并且表格也会增长如何做到这一点?是 php 部分还是 mysql 部分?

【问题讨论】:

  • 我会在 MySQL 中使用 ORDER BY RAND()
  • 已经有很多问题了。
  • @JayBlanchard 是不是像这样 SELECT *img_table ORDER BY RAND(id);
  • 好的,有什么问题?
  • 我喜欢 Ralph。 年纪大了,但仍然相关 @Fred-ii- CAD?

标签: php mysql


【解决方案1】:

有两种选择。您可以执行 ORDER BY RAND(),也可以执行全选并在 PHP 中随机化选定的行。

选项 1:

SELECT * from IMAGES ORDER BY RAND();

选项 2:

//select images (example uses mysql_ library; it's deprecated so DON'T USE IT!)
$query = "SELECT * FROM IMAGES";
$result = mysql_query($connection, $query)
$rows = mysql_fetch_all($result);
//randomize the array of images
shuffle($rows);
//output the images here

对于大型数据集,选项 1 可能会变得非常慢。根据我的经验,选项 2 更快,但值得您自己进行测试,看看哪种方法最适合您。通常,差异只有几分之一秒。在此处查看答案以获取更多信息:MySQL: Alternatives to ORDER BY RAND() 或此处:How can i optimize MySQL's ORDER BY RAND() function?

第三种选择是生成随机 ID 并选择与这些 ID 匹配的专辑。这仅适用于您的 id 中没有空白的情况。这个我没试过。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 2012-02-05
  • 2014-01-28
  • 2011-09-26
相关资源
最近更新 更多