php实现自写分页,自写thinkphp page分页功能。

这篇博客分享了作者如何使用自定义的PHP函数来替代ThinkPHP框架中的Page分页类,以实现更灵活的分页功能。作者提供了两个函数,一个用于获取分页的基本信息,另一个用于生成数字分页链接。通过这两个函数,可以实现如123456这样的数字分页展示,并且可以根据实际需求调整显示的页数。在模板中,作者通过条件判断展示了分页链接,并给出了调用这两个函数的方法。
摘要由CSDN通过智能技术生成

用 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 = $page + 1;

} else {

$nextpage = $countpage;

}

$showpage['firstRow'] = $firstRow; //首页

$showpage['count'] = $count; //总记录数

$showpage['countpage'] = $countpage; // 总页面数

$showpage['pagesize'] = $pagesize; //页面大小

$showpage['page'] = $page; //当前页

$showpage['uppage'] = $uppage; //上一页

$showpage['nextpage'] = $nextpage; //下一页

return $showpage;

}

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

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

$pages="";

if($countpage==1)

{

$pages=str_replace("[page]",$page,$notpl);

}

else

{

if($page>5)

{

$p_s=$page-5;

}

else

{

$p_s=1;

}

if(($page+5)>=$countpage)

{

$p_e=$countpage;

}

else

{

$p_e=$page+5;

}

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

{

$p_e=$p_e+(10-$p_e);

}

for(;$p_s<=$p_e;$p_s++)

{

if($p_s==$page)

{

$pages_tmp=str_replace("[page]",$p_s,$notpl);

}

else

{

$pages_tmp=str_replace("[page]",$p_s,$tpl);

}

$pages.=$pages_tmp;

}

//if(floor($page%10)==0)

}

return $pages;

}

调用方法:

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

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

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

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

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

PHP方面基本结束。

模板部分:

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值