如何将查询结果划分为页面?

时间:2013-02-22 19:39:51

标签: php mysql pagination grouping

我想实现一个“页面”系统,以便在第一页中我显示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
;");

3 个答案:

答案 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 =你想要没有行