分页的实现,

<?php

class Page{
     private $total; // 总共有多少条记录
     private $pagenum; // 分成多少页
     private $pagesize; // 每页多少条记录
     private $current; // 当前所在的页数
     private $url; // url
     private $first// 首页
     private $last;   // 末页
     private $prev;   // 上一页
     private $next;   // 下一页

     /**
     * 构造函数
     * @access public
     * @param $total number 总的记录数
     * @param $pagesize number 每页的记录数
     * @param $current number 当前所在页
     * @param $script string 当前请求的脚本名称,默认为空
     * @param $params array url所携带的参数,默认为空
     */
     public function __construct( $total, $pagesize, $current, $script = '', $params = array()){
         $this-> total = $total;
         $this-> pagesize = $pagesize;
         $this-> pagenum = $this-> getNum();
         $this-> current = $current;
        
         //设置url
         $p = array();
         foreach ( $params as $k => $v) {
             $p[] = " $k = $v ";
        }
         $this-> url = $script . '&' . implode( '&', $p) . '&page=';

         $this-> first = $this-> getFirst();
         $this-> last = $this-> getLast();
         $this-> prev = $this-> getPrev();
         $this-> next = $this-> getNext();
    }

     private function getNum(){
         return ceil( $this-> total / $this-> pagesize);
    }

     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>";
        }
        
    }

     /**
     * getPage方法,得到分页信息
     * @access public
     * @return string 分页信息字符串
     */
     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 "共有 { $this-> total } 条记录";
        }
        
    }
}

//使用:配合mysql操作类一起使用
/*
$total = $db->total();
$pagesize = 3;

$current = isset($_REQUEST['page']) ? $_REQUEST['page'] : 1;

$offset = ($current - 1) * $pagesize;
$rows = $db->getAll("SELECT * FROM category limit $offset,$pagesize" );

$page = new page($total,$pagesize,$current,'test.php',array('goods_id'=>2));

$str = "<table width='400' border='1'>";
$str .= "<tr><th>编号</th><th>名称</th><th>父编号</th></tr>";
foreach ($rows as $v) {
    $str .= '<tr>';
    $str .= "<td>{$v['cat_id']}</td>";
    $str .= "<td>{$v['cat_name']}</td>";
    $str .= "<td>{$v['parent_id']}</td>";
    $str .= '</tr>';
}
$str .= "</table>";

echo $str;

echo $page->showPage();
*/

         $umodel= new UserModel( 'user');
         $this-> library( 'Page');      //载入分类类
         $total= count( $umodel-> getAllUser()); //获取总条数
         $pagesize = 10//每页显示的条数
         $current = isset( $_REQUEST[ 'page']) ? $_REQUEST[ 'page'] : 1; //当前页
         $offset = ( $current - 1) * $pagesize; //边界
         $cpage = $umodel-> getPage( " SELECT * FROM cz_user limit $offset , $pagesize " ); //获取数据
         $page = new page( $total, $pagesize, $current, 'index.php?p=admin&c=user&a=index', array( 'goods_id'=> 2)); //创建对象
         $p= $page-> showPage(); //打印分页到页面 echo
         include CUR_VIEW_PATH . "user_list.html";



猜你喜欢

转载自blog.csdn.net/liu709127859/article/details/80857428