既简单又简陋的php分页…
作者: 郑晓 分类: PHP 发布于: 2012-03-24 18:13 浏览:5,063 没有评论
又是大半天。。。以前写过的都忘的一干二净,而且是没用过函数的。。。写第一遍时算法想了半天还是错的,这个是第二遍。。依旧是BUG满Apache飞…哈哈。。凑合着。。
<?php
/**
* @author 郑晓
* @copyright 2012
* $pageNavNum 导航页码
* $pageNumStart 导航起始码数
* $totalPageNum 总页数
* $navDisNum 导航显示页码数
* $totalContentNum 总内容数
*/
function page($pageTpl,$navDisNum,$perNum,$totalContentNum,$page) {
$totalPageNum = ceil($totalContentNum/$perNum); //总分页数
$pageNumStart = (ceil($page/$navDisNum)-1)*$navDisNum ; //导航起始数
$hPage = $navDisNum/2;
$hPage = intval($hPage);
if($page<=$hPage) {
$start = 1;
$end=$navDisNum;
} else {
$start=$page-$hPage;
$end=$start+$navDisNum-1;
}
if($start>1) {$pageStr.='<a href="?page=1">[首页]</a>..';}
// echo '起始值:'.$pageNumStart.'<br>导航显示:'.$navDisNum.'个<br>总页数:'.$totalPageNum.'<br>start='.$start.'end='.$end;
if($end>=$totalPageNum){$start=$totalPageNum-$navDisNum+1;}
for($pageNavNum=$start;$pageNavNum<=$end;$pageNavNum++) {
if($pageNavNum>$totalPageNum) {break;}
if($pageNavNum!=$page) {
$pageStr.='<a href="?page='.$pageNavNum.'">['.$pageNavNum.']</a> ';
} else {
$pageStr.=$pageNavNum.' ';
}
}
if($hPage<$totalPageNum-$page) {$pageStr.='..<a href="?page='.$totalPageNum.'">[末页]</a>';}
$startNum = ($page-1)*$perNum;
$pageArr=array();
$pageArr['page']=$pageStr;
$pageArr['sql']= "SELECT * FROM tpltest LIMIT $startNum,$perNum";
return $pageArr;
}
?>
/**
* @author 郑晓
* @copyright 2012
* $pageNavNum 导航页码
* $pageNumStart 导航起始码数
* $totalPageNum 总页数
* $navDisNum 导航显示页码数
* $totalContentNum 总内容数
*/
function page($pageTpl,$navDisNum,$perNum,$totalContentNum,$page) {
$totalPageNum = ceil($totalContentNum/$perNum); //总分页数
$pageNumStart = (ceil($page/$navDisNum)-1)*$navDisNum ; //导航起始数
$hPage = $navDisNum/2;
$hPage = intval($hPage);
if($page<=$hPage) {
$start = 1;
$end=$navDisNum;
} else {
$start=$page-$hPage;
$end=$start+$navDisNum-1;
}
if($start>1) {$pageStr.='<a href="?page=1">[首页]</a>..';}
// echo '起始值:'.$pageNumStart.'<br>导航显示:'.$navDisNum.'个<br>总页数:'.$totalPageNum.'<br>start='.$start.'end='.$end;
if($end>=$totalPageNum){$start=$totalPageNum-$navDisNum+1;}
for($pageNavNum=$start;$pageNavNum<=$end;$pageNavNum++) {
if($pageNavNum>$totalPageNum) {break;}
if($pageNavNum!=$page) {
$pageStr.='<a href="?page='.$pageNavNum.'">['.$pageNavNum.']</a> ';
} else {
$pageStr.=$pageNavNum.' ';
}
}
if($hPage<$totalPageNum-$page) {$pageStr.='..<a href="?page='.$totalPageNum.'">[末页]</a>';}
$startNum = ($page-1)*$perNum;
$pageArr=array();
$pageArr['page']=$pageStr;
$pageArr['sql']= "SELECT * FROM tpltest LIMIT $startNum,$perNum";
return $pageArr;
}
?>
差不多这样吧,返回是一个简单的数组,0是分页条内容,1是sql查询。
本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。
本文永久链接: https://www.zh30.com/simplephp-the-the-paging.html