分页类代码 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 .= " ";
$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;
}
}
?>