我想实现一个“页面”系统,以便在第一页中我显示10个结果(1-10),在第二页中我显示其他10个(11-20)结果。等
结果应以不同方式排序,例如ORDER BY count DESC;
是否有一个纯粹的MySQL解决方案,如
$results_per_page = 10;
$page_number = $_GET['page'];
mysql_query( "SELECT * FROM mytable ORDER BY count DESC
LIMIT $results_per_page*$page , $results_per_page*($page+1) // Of course, I made up this line
;");
答案 0 :(得分:0)
我找到了问题的答案,我应该像
一样选择它们SELECT * FROM mytable ORDER BY whatever DESC LIMIT 10 OFFSET 10;
第二页。
因此变量变为
SELECT * FROM mytable ORDER BY whatever DESC LIMIT $results_per_page OFFSET $page_number-1;
答案 1 :(得分:0)
清理$ page变量后,由于出于安全原因,您不应该直接接受用户的输入,您应该这样做:
<?php
$first = $results_per_page * ($page-1); // on page 1 you want to start at row 0
$querystring = "SELECT * FROM mytable ORDER BY count DESC
LIMIT $first, $results_per_page";
?>
答案 2 :(得分:0)
make a function passing four parameters
function getresult($index,$order,$start,$no_rows)
{
$sql="SELECT * FROM mytable order by $index $orders limit $start,$no_rows";
}
其中,
$ index =你要做的排序
$顺序= ASC /递减
$ start = from on yow将开始获取记录
$ no_ $ rows =你想要没有行