php实现分页显示功能
来源:互联网 发布:网络体系结构的定义 编辑:程序博客网 时间:2024/06/05 16:59
Sql公式: select * from cz_goods_type order by type_id limit 1,2;
Offset:偏移量
Pagesize:每页显示的条数
其中offset是在变化的,和当前所在页数(current)、每页显示条数有关(pagesize)
Offset=(current-1) * pagesize
最终公式:select * from cz_goods_type order by type_id limit (current-1)*pagesize, pagesize;
分页步骤:
1、查询数据库获取记录
2、使用分页类输出分页信息
分页类只输出分页信息,不负责查询数据库, 分页类:
<?php//分页类,完成分页信息的输出//共有 3 条记录,每页显示 2 条记录, 当前为 1/2 [首页] [上一页] [下一页] [末页]//index.php?p=admin&c=brand&a=index&page=2class Page{//属性private $total; //总的记录数private $pagesize; //每页显示的记录数private $currernt; //当前页数private $pagenum; //总的页数private $first; //首页超链接private $last; //末页超链接private $prev; //上一页超链接private $next; //下一页超链接private $url; //超链接的地址//构造方法/** *@param script string 超链接地址的文件名,不带任何参数 *@param params array 超链接地址的参数 */function __construct($total,$pagesize,$current,$script,$params=array()){$this->total = $total;$this->pagesize = $pagesize;$this->current = $current;$this->pagenum = ceil( $total / $pagesize );//index.php?p=admin&c=brand&a=index&page=2//new分页类 new Page(10,3,2,'index.php',array('p'=>'admin','c'=>'brand','a'=>'index'))$temp = array();foreach ($params as $k =>$v){//首先要形成 p=admin c=brand a=index 的内容,以数组的形式保存$temp[] = "$k=$v";}$str = implode("&", $temp); // p=admin&c=brand&a=index$this->url = "$script?{$str}&page="; //由于上页,下页,首页,末页的page是不同的,不能指定$this->first = $this->getFirst(); //得到首页超链接$this->last = $this->getLast();$this->prev = $this->getPrev();$this->next = $this->getNext();}//获得首页超链接private function getFirst(){//判断当前页是否为第一页if ($this->current == 1) {// 当前页是第一页return "[首页]";}else {//不是第一页return "<a href='{$this->url}1'>[首页]</a>";}}//获得末页超链接private function getLast(){//判断是否为最后一页if ($this->current == $this->pagenum ){return "[末页]";} else {return "<a href='{$this->url}{$this->pagenum}'>[末页]</a>";}}//获得上一页超链接private function getPrev(){//判断是否为第一页if ($this->current == 1){return "[上一页]";} else {return "<a href='{$this->url}".($this->current - 1)."'>[上一页]</a>";}}//获得下一页超链接private function getNext(){//判断是否为末页if ($this->current == $this->pagenum){return "[下一页]";} else {return "<a href='{$this->url}".($this->current + 1)."'>[下一页]</a>";}}//主方法,输出分页信息public function showPage(){if ($this->pagenum >= 1){return "共有 {$this->total} 条记录,每页显示 {$this->pagesize} 条记录,当前为 {$this->current}/{$this->pagenum} {$this->first} {$this->prev} {$this->next} {$this->last}";} else {return "";}}}
使用方法:
Model中的代码:
//分页获取商品类型数据public function getPageTypes($offset, $pagesize){$sql = "select * from {$this->table} order by type_id limit $offset, $pagesize";return $this->db->getAll($sql);}
Controller中使用的代码:
public function indexAction(){//1.获取所有的商品类型$typeModel = new TypeModel("goods_type");//分页输出//获取当前分页,通过url的参数(page)$current = isset($_GET['page']) ? $_GET['page'] : 1;//获取每页显示的记录数$pagesize = 2;$offset = ($current - 1) * $pagesize;$types = $typeModel->getPageTypes($offset, $pagesize); //获取总的记录数$where = ""; //此条件为空$total = $typeModel->total($where);$this->library("Page");$page = new Page($total, $pagesize, $current, 'index.php', array('p'=>'admin', 'c'=>'type', 'a'=>'index'));$pageinfo = $page->showPage();//2.展示到视图include CUR_VIEW_PATH . "goods_type_list.html";}
View中用的方法:
<?php echo $pageinfo;?>
阅读全文
0 0
- php实现分页显示功能
- php 实现分页功能
- PHP分页功能实现
- php分页功能实现
- PHP实现分页功能
- PHP学习笔记 2009-8-25 实现分页显示功能
- PHP分页功能的实现
- PHP实现分页浏览功能
- PHP常用功能-php实现分页
- 实现长文章分页显示功能
- jsp实现分页显示的功能
- SSH实现数据分页显示功能
- php 跳转分页 (部分功能实现)
- PHP+MySQL实现留言板分页功能
- PHP分页功能使用类封装实现
- PHP中分页功能的实现
- 检索结果的分页显示实现(php)
- PHP 留言簿(带Oracle数据库分页的显示功能)
- https请求单向认证
- 使用远程线程注入的三个函数CreateRemoteThread、NtCreateThreadEx、RtlCreateUserThread
- CODEV和zemax tilt反射镜建立和对比3
- JMS之——ActiveMQ支持两种事务
- Recyclerview的一些个人理解与使用(七)Recyclerview的嵌套与增加删除
- php实现分页显示功能
- Deep Learning深入浅出
- (二)跑马灯的两种实现方式
- 浅谈Redis
- STL学习笔记-容器
- 第4.1章 scrapy之web工程
- 0630工作tips
- 功能展示——图片选择器、图片预览、9宫格展示、图片选择器
- HDU 1074 Doing Homework(状压DP)