自己写的分页类

分页类代码 model_page.php


<?php
/*
中间值分页类
function model_page 下为初始化变量
$page_size 每页显示的记录条数
$page_count 总共多少页
$url 分页的跳转路径
$page 当前的页面数
$page_limit 一次显示多少个分页 如 上一页 123..下一页 这样是一次显示3页
$page_len 第几个分页段 如 上一页 123..下一页 是第一个分页段 上一页 4 5 6..下一页 第二个分页段 计算公式 $page_len = ceil($page/$page_limit);
$page_start 分页段显示的的起始页  计算公式 $page_start = ($page_len-1)*$page_limit
$page_end 分页端的结束页  计算公式 $page_len*$page_limit
*/
class model_page {
    
    var $timestamp;
    var $mysql;
    
    function model_page($page_size, $page_count, $url, $page, $page_limit) {
        $this->page_size = $page_size;
        $this->page_count = $page_count;
        $this->url = $url;
        $this->page = $page;
        $this->page_limit = $page_limit;
    }
    function get_page() {
        $page_count = ceil($this->page_count/$this->page_size);
        if(empty($this->page) || $this->page < 0){ 
            $page = 1; 
        } else {
            $page = $this->page;
        }
        $offset = $this->page_size*($page-1);//得到记录的开始
        $page_len = ceil($page/$this->page_limit);//获取当前的分页段
        $page_start = ($page_len-1)*$this->page_limit+1;
        $page_end = $page_len*$this->page_limit;
        
        $strln = '';
        $strln .= '共条记录 ';
        $strln .= '共页 ';
        $strln .= '当前第一页 ';
        if($page == 1) {
            $strln .= '首页 ';
        } else {
            $strln .= "<a href=\"{$this->url}&page=1\">首页</a> ";    
        }
        if($page <= 1) {
            $strln .= '上一页 ';    
        } else {
            $strln .= "<a href=".$this->url."&page=".($page-1).">上一页</a> ";
        }
        for($i=$page_start; $i <= $page_count && $i <= $page_end; $i++) {
            if($page == $i) {
                $strln .= $i;
            } else {
                 $strln .= "<a href=\"{$this->url}&page={$i}\">".$i."</a>";
            }
        }
        if($page >= $page_count) {
            $strln .= '下一页 ';
            $strln .= '末页 ';        
        } else {
            $strln .= "<a href=".$this->url."&page=".($page+1).">下一页</a> ";
            $strln .= "<a href=".$this->url."&page=".$page_count.">末页</a> ";    
        }
        $strln .= "|".$offset;
        $strln = explode('|', $strln);
        return $strln;
    }    
}
?>

//为了方便理解 这里将sql直接写在了php 控制器页面

php页面 require_once('model/model_page.php');

$page_size = 2;
        $page_limit = 2;
        $page = intval($_REQUEST['page']);
        $sql = "SELECT COUNT(software_id) AS c FROM software";
        $result = mysql_query($sql, $this->mysql->conn);
        $row = mysql_fetch_array($result);
        $count = $row['c'];//获取要分页的数据库记录条数
        $page = new model_page($page_size, $count, 'software.php?a=index', $page, $page_limit);
        $pages = $page->get_page();


$sql = "SELECT software_id, software_title, software_url, software_exename, software_switch, software_city FROM software LIMIT {$pages[1]},$page_size";
        $result = mysql_query($sql, $this->mysql->conn);
        $row_content = array();
        
        while($row = mysql_fetch_array($result)) {
            
           $row_content[] = $row; 
            
        }

模版调用 {{if $page_size <= $page_count}}{{$pages.0}}{{/if}}

可任意修改分页的样式


由于分页过多找分页可能有点麻烦,所以加上了select跳转


class model_page {
    
    var $timestamp;
    var $mysql;
    
    function model_page($page_size, $page_count, $url, $page, $page_limit) {
        $this->page_size = $page_size;
        $this->page_count = $page_count;
        $this->url = $url;
        $this->page = $page;
        $this->page_limit = $page_limit;
    }
    function get_page() {
        $page_count = ceil($this->page_count/$this->page_size);
        if(empty($this->page) || $this->page < 0){ 
            $page = 1; 
        } else {
            $page = $this->page;
        }
        $offset = $this->page_size*($page-1);//得到记录的开始
        $page_len = ceil($page/$this->page_limit);//获取当前的分页段
        $page_start = ($page_len-1)*$this->page_limit+1;
        $page_end = $page_len*$this->page_limit;
        
        $strln = '';
        $strln .= '共条记录 ';
        $strln .= '共页 ';
        $strln .= '当前第一页 ';
        if($page == 1) {
            $strln .= '首页 ';
        } else {
            $strln .= "<a href=\"{$this->url}&page=1\">首页</a> ";    
        }
        if($page <= 1) {
            $strln .= '上一页 ';    
        } else {
            $strln .= "<a href=".$this->url."&page=".($page-1).">上一页</a> ";
        }
        for($i=$page_start; $i <= $page_count && $i <= $page_end; $i++) {
            if($page == $i) {
                $strln .= $i;
            } else {
                 $strln .= "<a href=\"{$this->url}&page={$i}\">".$i."</a>";
            }
        }
        if($page >= $page_count) {
            $strln .= '下一页 ';
            $strln .= '末页 ';        
        } else {
            $strln .= "<a href=".$this->url."&page=".($page+1).">下一页</a> ";
            $strln .= "<a href=".$this->url."&page=".$page_count.">末页</a> ";    
        }

       if($page_count > 1) {
            $strln .= "&nbsp;&nbsp;";
            $strln .= "<select οnchange=\"javascript:window.location.href=this.value\">";
            for($i=$page_start; $i <= $page_count; $i++) {
            if ($page == $i) {
                $strln .= "<option value=\".$this->url."&page=".$i." selected=\"selected\">";    
            } else {    
                $strln .= "<option value=\".$this->url."&page=".$i.">";
            }
                $strln .= $i;
                $strln .= "</option>";
            }
            $strln .= "</select>";
        }
        $strln .= "|".$offset;
        $strln = explode('|', $strln);
        return $strln;
    }    
}
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值