php分页示例分享


Posted in PHP onApril 30, 2014
//分页函数 第一页: url/1 第二页: url/2
function pages($url, $totalnum, $page, $pagesize = 20) {
    $urladd = '';
    $url .= '/';    $totalpage = ceil($totalnum / $pagesize);
    if($totalpage < 2) return '';
    $page = min($totalpage, $page);
    $shownum = 5;   // 显示多少个页 * 2
    $start = max(1, $page - $shownum);
    $end = min($totalpage, $page + $shownum);
    // 不足 $shownum,补全左右两侧
    $right = $page + $shownum - $totalpage;
    $right > 0 && $start = max(1, $start -= $right);
    $left = $page - $shownum;
    $left < 0 && $end = min($totalpage, $end -= $left);
    $s = '';
    $page != 1 && $s .= '<a href="'.$url.($page - 1).$urladd.'">◀</a>';
    if($start > 1) $s .= '<a href="'.$url.'1'.$urladd.'">1 '.($start > 2 ? '... ' : '').'</a>';
    for($i=$start; $i<=$end; $i++) {
        if($i == $page) {
            $s .= '<a href="'.$url.$i.$urladd.'" class="checked">'.$i.'</a>';// checked
        } else {
            $s .= '<a href="'.$url.$i.$urladd.'">'.$i.'</a>';
        }
    }
    if($end != $totalpage) $s .= '<a href="'.$url.$totalpage.$urladd.'">'.($totalpage - $end > 1 ? '... ' : '').$totalpage.'</a>';
    $page != $totalpage && $s .= '<a href="'.$url.($page + 1).$urladd.'">▶</a>';
    return $s;
}
<br>
function mid($n, $min, $max) {
    if($n < $min) return $min;
    if($n > $max) return $max;
    return $n;
}
function page($page, $n, $pagesize) {
    $total = ceil($n / $pagesize);
    $total < 1 AND $total = 1;
    return mid($page, 1, $total);
}

后端部分,我们几句就可以搞定。

$pagesize = 20;    //每页显示多少用户
$n = user_count();      //总用户数
$page = page($page, $n, $pagesize);  //当前页数
$userlist = user_find($page, $pagesize);  //查找出当前页的用户
//html部分,分页效果,直接渲染到页面即可
$pagehtml = pages(url前缀, $n, $page, $pagesize);
PHP 相关文章推荐
PHP操作Memcache实例介绍
Jun 14 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
Jan 31 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
php中字符集转换iconv函数使用总结
Oct 11 PHP
php操作memcache缓存方法分享
Jun 03 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
PHP的swoole扩展安装方法详细教程
May 18 PHP
简单的自定义php模板引擎
Aug 26 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
yii框架配置默认controller和action示例
Apr 30 #PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 #PHP
yii框架builder、update、delete使用方法
Apr 30 #PHP
yii框架表单模型使用及以数组形式提交表单数据示例
Apr 30 #PHP
php+js iframe实现上传头像界面无跳转
Apr 29 #PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 #PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 #PHP
You might like
PHP编程与应用
2006/10/09 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
php验证手机号码
2015/11/11 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
Python实现控制台进度条功能
2016/01/04 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
入党介绍人意见2015
2015/06/01 职场文书
回复函格式及范文
2015/07/14 职场文书
初中班干部工作总结
2015/08/10 职场文书
《司马光》教学反思
2016/02/22 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs
灵能百分百第三季什么时候来?
2022/03/15 日漫
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android