Zend Framework框架实现类似Google搜索分页效果
作者:Ud琦
这篇文章主要介绍了Zend Framework框架实现类似Google搜索分页效果,结合实例形式分析了Zend Framework框架实现分页效果所涉及的基本查询、判断与分页效果构造相关操作技巧,需要的朋友可以参考下
本文实例讲述了Zend Framework框架实现类似Google搜索分页效果。分享给大家供大家参考,具体如下:
/** * * @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; }
更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。