php分页原理浅析,php分页代码简单示例

发布时间:2020-08-28编辑:脚本学堂
本文介绍了php分页实现原理,分享一段php分页代码,比较简单,适合作为php分页的入门参考,感兴趣的朋友参考下。

学习php分页代码的实现,一般都是先了解下php分页原理是什么样的?

假设要处理1000条数据,每页显示10条,分100页来显示。
先看一看在mysql里提取10条信息是如何操作的。
select * from table limit 0,10

专题推荐:php分页代码大全

从table里提取10条信息,“0”表示起点位置,“10”表示数量,也就是信息条数。

那么以“10”为起点提取十条呢
 

select * from table limit 10,10

以此类推
 

select * from table limit 0,10
select * from table limit 10,10
select * from table limit 20,10
……

第一个参数,每翻一页就增加10,第二个参数不变,原理简单吧。
那么,如何根据页数改变第一个参数的值呢,

首先,咱们要有一个页数的值,用url的GET方式获取。
比如index.php?page=5

来看一段php分页代码:
 

$pagenum;
$pagesize = 5;
$offset = ($pagenum-1)*$pagesize;
$sql = "select * from message limit $offset,$pagesize order by id desc";
$result = mysql_query($sql);

显示数据:
/*显示分页信息,当前页为粗体数字,其余页为超级链接

1 2 3 4 5

*/

有了以上关于PHP分页原理的分析,下面来看一段简单的php分页代码:
 

复制代码 代码示例:

$pages = range(1, 100); 记录数
$page_list['end'] = (count($pages) / 10) ? ceil((count($pages) / 10)) : 0;  //总页数 最后页数

$step = isset($_GET['step']) ? $_GET['step'] : 5;    //步长   
$curr_page = isset($_GET['curr_page']) ? $_GET['curr_page'] : 1; //当前页
$page_list['first'] = 1;  //首页
$page_list['prev'] = max($curr_page - 1, 1);      //上一页
$page_list['now'] = min($curr_page, $page_list['end']);  当前页
$page_list['next'] = min($curr_page + 1, $page_list['end']); //下一页
$page_list['step_first'] = max(1, $page_list['now']-$step);
$page_list['step_end'] = min($page_list['step_first']+$step, $page_list['end']);
$page_list['step_list'] = range($page_list['step_first'], $page_list['step_end']);
echo '<a href="index.php?curr_page=1&step=5">第一页</a>', '<a href="index.php?step=5&curr_page=' . $page_list['prev'] . '">上一页</a>';
foreach ($page_list['step_list'] as $value) {
    echo '<a href="index.php?step=5&curr_page=' . $value . '">' . $value . '</a>';
}
echo'<a href="index.php?step=5&curr_page=' . $page_list['next'] . '">下一页</a>', '<a href="index.php?step=5&curr_page=' . $page_list['end'] . '">最后页</a>