我的视图中有一个浏览次数最多的区域。
我实际上在做的是对我的数据库的查询ORDER BY clicks DESC LIMIT 0, 3
并用foreach回应这个。在这一点上,它为用户提供了静态的方法。这就是为什么我要显示大多数已查看项目的随机项目,例如:ORDER BY clicks DESC LIMIT 0, 11
并使用for
循环($i=0; $i>=3;$i++)
进行回显,并在回显之前随机播放项目$items[array_rand($items)];
。
实际上我觉得不舒服,因为可能会发生一个项目多次显示一次。
我的问题是,如果有一个很好的其他方法可以以干净的方式解决这个问题,而不会产生代码开销。
答案 0 :(得分:0)
可以通过适当的查询完成。只需插入正确的表名。
SELECT *
FROM
(SELECT *
FROM TABLE_NAME
ORDER BY clicks DESC LIMIT 0, 11) AS most_clicked
ORDER BY RAND() LIMIT 0, 3
它会以随机顺序返回3个最随机点击的11个随机行。