用ZF框架模仿google分页
精选 转载<?php
/**
*
* @param unknown_type $model 表类型
* @param unknown_type $ncontroller 那个控制器提交的controller
* @param unknown_type $naction 那个action提交的action
*/
public function fenyepage2($model,$ncontroller,$naction){
if(!isset($_SESSION))
{session_start();}
$pageSize = $_SESSION['pagesize'];
$pageNow = $_SESSION['pagenow'];
$offset = ($pageNow-1)*$pageSize;
$db = $this->getAdapter();
$select = $db->select();
$select->from('student','*');
if(!isset($_SESSION))
{session_start();}
if($_SESSION['qsname']!=""){
$sname = $_SESSION['qsname'];
$select->where('sname like ?',"%$sname%");
}
if($_SESSION['qsaddress']!=""){
$saddress = $_SESSION['qsaddress'];
$select->where('saddress like ?',"%$saddress%");
}
if($_SESSION['qsdept']!=""){
$sdept = $_SESSION['qsdept'];
$select->where('sdept like ?',"%$sdept%");
}
$coutNews = $db->fetchAll($select);
$pageCount = ceil(count($coutNews)/$pageSize);
$select->limit($pageSize,$offset);//第一个参数:总共显示多少个。第二个参数:从第几个开始显示
$res = $db->fetchAll($select);
$native = null;
$native = "<a href='\\$ncontroller\\$naction?pageNow=1&pagesize=$pageSize'>首页</a> ";
if($pageNow>1){
$nextPage = $pageNow-1;
$native.=" <a href='\\$ncontroller\\$naction?pageNow=$nextPage&pagesize=$pageSize'>上一页</a> ";
}
if(($pageNow-1)>5){
if($pageNow+4>$pageCount){//如果最后的页数和理应前面开始的页数小于10则
$start = $pageCount-9;//开始的页数和结束的页数相差9
}else{
$start=$pageNow-5;//开始位置和结束位置相差5
}
}else{
$start = floor(($pageNow-1)/10)*10+1;
}
if($pageCount>=$start+10){
$index = $start+10;
}
else{
$index = $pageCount+1;
}
for(;$start<$index;$start++){
$native.=" <a href='\\$ncontroller\\$naction?pageNow=$start&pagesize=$pageSize'>$start</a>";
}
if($pageNow<$pageCount){
$nextPage = $pageNow+1;
$native.=" <a href='\\$ncontroller\\$naction?pageNow=$nextPage&pagesize=$pageSize'>下一页</a> ";
}
$native.=" <a href='\\$ncontroller\\$naction?pageNow=$pageCount&pagesize=$pageSize'>末页</a> ";
$native.=" 当前{$pageNow}||总共{$pageCount}页";
$model->arrs = $res;
$model->native = $native;
}
?>
上一篇:SQL注入难题解决
下一篇: PHP mysql 乱码解决方案
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章