【问题标题】:How to use PHP to display 50 random images from hundreds? [duplicate]如何使用 PHP 显示数百张随机图片中的 50 张? [复制]
【发布时间】:2012-12-01 22:53:53
【问题描述】:

可能重复:
MySQL select 10 random rows from 600K rows fast

网络上有很多不同的例子,但我希望有人能找到适合我正在寻找的解决方案......当然我不能是唯一的一个!

我正在建立一个摄影网站,并希望在着陆页上显示 50 多个图像缩略图。最重要的是我希望它使用 PHP 随机显示图片并且没有重复。我还希望每张图片都有自己独特的 href 和 title 参数。

所以,我创建了一个 mySQL 表,其中包含:

id image_path, image_href, image_title

我想我可以轻松地自行调整图像的大小并将它们放在根目录的文件夹中,然后在 image_path 行中调用它。

有谁知道如何以最有效的方式做到这一点?我听说当数据库变大时 rand() 很糟糕。该数据库将增长到数以万计的图像。

如果您需要/想要澄清,请告诉我。

谢谢!!!

编辑:我可能在研究中找到了答案,但我对 PHP 还是很陌生... :)

【问题讨论】:

  • 返回结果时为什么不使用 MySQL 的RAND?用数据库做比用 PHP 做要好。
  • @DylanCross 我听说当你的数据库很大时它会变得很慢。

标签: php database random duplicates


【解决方案1】:

您可以查询数据库,将结果按RAND() 排序并选择前50:

SELECT id, image_path, image_href, image_title 
FROM table 
ORDER BY RAND()
LIMIT 50

这保证没有重复的结果,除非您的表本身有重复。

这个问题概述了一种更快的方法:MySQL select 10 random rows from 600K rows fast

【讨论】:

  • 我真的很喜欢输入答案并在看到有一种更优雅的做事方式后将其丢弃,谢谢!
  • @blender 我读到当桌子很大时 rand() 会变得很慢......
  • @doobada:阅读我在答案底部链接到的问题的答案。
  • @Blender 我第一次没有看到它,谢谢你的链接。我将如何编写代码以将图像放置在页面上的单独 div 中?我不希望它只是在一个 div 中吐出 50 张图像...
  • @doobada:我不再使用 PHP,所以我不确定有哪些好的网站可以链接,但基本的 PHP/MySQL 教程中介绍了这些信息。
猜你喜欢
  • 2018-05-18
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 2012-01-24
  • 2016-06-22
  • 2013-06-11
  • 1970-01-01
  • 2021-12-14
相关资源
最近更新 更多