PHP-分页

1.6 分页

1.6.1 分析

-- 1、获取当前页码的数据
页码		SQL语句
1			select * from products limit 0,10
2			select * from products limit 10,10
3			select * from products limit 20,10
结论:
$pageno:页码
$startno:起始位置
$pagesize=10:页面大小
公式:$startno=($pageno-1)*$pagesize;-- 2、如何获取页码
用户点击页面底端页码,传递当前的页面-- 3、如何获取总页码		
记录数			页数			计算
60				6			60/10=6
51				6			ceil(51/10)=6结论:
$rowcount:总记录数
$pagecount:总页数
公式:$pagecount=ceil($rowcount/$pagesize)-- 4、如何获取总记录数
select count(*) from products;

在这里插入图片描述

1.6.2 步骤

第一步:获取总记录数

第二步:求出总页数

第三步:循环显示页码

第四步:通过当前页面,求出起始位置

第五步:获取当前页面数据,并遍历显示

1.6.3 代码实现

将上一讲的MySQLDB类拷贝到站点下,将测试代码删除,只留下类代码,文件名改为MySQLDB.class.php

分页页面代码如下:

	'root','pwd'		=>	'root','dbname'	=>	'data'
);
//获取单例
$db=MySQLDB::getInstance($param);
?>




无标题文档


fetchColumn('select count(*) from products');
//第二步:求出总页数
$pagecount=ceil($rowcount/$pagesize);
//第四步:通过当前页面,求出起始位置
//$pageno=isset($_GET['pageno'])?$_GET['pageno']:1;
$pageno=$_GET['pageno']??1;
$pageno=$pageno<1?1:$pageno;
$pageno=$pageno>$pagecount?$pagecount:$pageno;
$startno=($pageno-1)*$pagesize;
//第五步:获取当前页面数据,并遍历显示
$sql="select * from products limit $startno,$pagesize";
$rs=$db->fetchAll($sql);
?>
编号商品名称规格价格
一共有条记录,每页放条记录,当前是
首页】 【上一页 下一页】 【末页

运行结果

在这里插入图片描述

1.6.4 分页优化

在上面的分页代码中,虽然SQL语句比较经典,但是每次都要获取不需要的数据,浪费资源

$sql="select * from products limit $startno,$pagesize";

优化

$sql="select * from products where proid>=(select proid from products limit $startno,1) limit $pagesize";


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部