使用php和mysql选择随机图像

时间:2015-05-12 16:34:52

标签: php mysql

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

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部分?。

1 个答案:

答案 0 :(得分:0)

有两种选择。您可以执行ORDER BY RAND(),也可以选择all并随机化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中没有间隙的情况。我从未尝试过这个。