2013-12-03 35 views
0

我在我的视图中获得了查看次数最多的项目。显示点击排序的列表中的随机项目的具体数量

什么我实际上做的是一个查询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

请正确格式化您的代码。通过在任何代码行之前缩进4个空格来插入代码块。如需进一步的帮助,请参阅[编辑常见问题](http://stackoverflow.com/editing-help#code) –

回答

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个随机行。

+0

这是更聪明!正是我所期待的。我很感激! – user1946431