我有一个获取6个结果的查询,然后我想随机化这6个结果,所以每当该人重新加载页面时,它们将按顺序随机化。
在这6个结果中,我想在一个单独的盒子中显示一个,而不是其他的,我该怎么做?
这就是我的想法,得到结果,在数组上使用shuffle(),然后在单独的框中我echo array[0]['info']
,然后其余的我做$i = 2; while($i <= 6);
并回显{{1 }}
我需要这个功能尽可能高效,所以任何提示都值得赞赏。可以单独查询?
答案 0 :(得分:7)
您可以从MySQL以随机顺序获取结果,而不是在PHP中随机化。
SELECT * FROM `table` ORDER BY RAND() LIMIT 6;
另见RAND()(以下注释)
修改强>
要仅随机化最后x个条目,请参阅this answer。
答案 1 :(得分:2)
你可以用这个......
select * from (select * from table order by date desc limit 6) as t order by rand();
答案 2 :(得分:1)
shuffle( $result );
foreach( $result as $key=>$value ):
if( $key ):
// get first item
$firstOne = $value;
continue;
endif;
// echo others
endforeach;
然后在单独的框中回显$ firstOne。