热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php实现自写分页,自写thinkphppage分页功能。

用thinkphp也好久了。不过一直没用他的page分页类,因为。。真心不好用。好久之前就自己鼓捣了一个分页函数,以代替page的功能。下面分享一下吧。主要是两个函数

用 thinkphp 也好久了。 不过一直没用他的page分页类,因为。。真心不好用。

好久之前就自己鼓捣了一个 分页函数,以代替page的功能。

下面分享一下吧。

主要是两个函数。 一个是正常的page分页功能,还有一个是获取 数字分页功能

如: 1 2 3 4 5 6 这样的分页。

function getShowPages($count,$page,$pagesize)

{

if($page == 0) {$page = 1;}

if(empty($count)){$count=0;}

$firstRow = ($page - 1) * $pagesize;

$countpage = intval($count / $pagesize);

if (($count / $pagesize) > $countpage) {

$countpage = $countpage + 1;

}

if ($page > 1) {

$uppage = $page - 1;

} else {

$uppage = 1;

}

if ($page <$countpage) {

$nextpage &#61; $page &#43; 1;

} else {

$nextpage &#61; $countpage;

}

$showpage[&#39;firstRow&#39;] &#61; $firstRow; //首页

$showpage[&#39;count&#39;] &#61; $count; //总记录数

$showpage[&#39;countpage&#39;] &#61; $countpage; // 总页面数

$showpage[&#39;pagesize&#39;] &#61; $pagesize; //页面大小

$showpage[&#39;page&#39;] &#61; $page; //当前页

$showpage[&#39;uppage&#39;] &#61; $uppage; //上一页

$showpage[&#39;nextpage&#39;] &#61; $nextpage; //下一页

return $showpage;

}

//tpl是分页模板 notpl 是当前页不需要链接 page 是当前页 countpage 是总页数

function getPages($tpl,$notpl,$page,$countpage){

$pages&#61;"";

if($countpage&#61;&#61;1)

{

$pages&#61;str_replace("[page]",$page,$notpl);

}

else

{

if($page>5)

{

$p_s&#61;$page-5;

}

else

{

$p_s&#61;1;

}

if(($page&#43;5)>&#61;$countpage)

{

$p_e&#61;$countpage;

}

else

{

$p_e&#61;$page&#43;5;

}

if($page<5 and $countpage>10)

{

$p_e&#61;$p_e&#43;(10-$p_e);

}

for(;$p_s<&#61;$p_e;$p_s&#43;&#43;)

{

if($p_s&#61;&#61;$page)

{

$pages_tmp&#61;str_replace("[page]",$p_s,$notpl);

}

else

{

$pages_tmp&#61;str_replace("[page]",$p_s,$tpl);

}

$pages.&#61;$pages_tmp;

}

//if(floor($page%10)&#61;&#61;0)

}

return $pages;

}

调用方法&#xff1a;

$count &#61; $M->where($where)->count();   //获取总记录数 自己搞 where

$ShowPage &#61; getShowPages($count, $page, 16); /$count 是上面的记录数 $page是当前页  16 是页面大小

$list &#61; $M->where($where)->order(‘id desc’)->limit($ShowPage[&#39;firstRow&#39;] . ‘,’ . $ShowPage[&#39;pagesize&#39;])->select(); // 调取相应页面的数据

$this->assign(‘list’, $list);

$this->assign(‘ShowPage’, $ShowPage); //模板赋值

PHP方面基本结束。

模板部分&#xff1a;

 //判断是否有多页。只有一页的话不显示分页。

 //判断是否第一页 第一页不显示 上一页

<[page]’,&#39;[page]’,$ShowPage[&#39;page&#39;],$ShowPage[&#39;countpage&#39;]); //这个根据自己需要调用&#xff0c;显示入 1  2  3  4   5  6 这种序号分页

//判断是否是最后一页 最后一页不显示 下一页



推荐阅读
author-avatar
王小贱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有