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的大小写敏感问题整理
Dec 29 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
PDO::beginTransaction讲解
Jan 27 PHP
thinkPHP5框架路由常用知识点汇总
Sep 15 PHP
php策略模式简单示例分析【区别于工厂模式】
Sep 25 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 PHP
详解php反序列化
Jun 10 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
在Windows版的PHP中使用ADO
2006/10/09 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
php简单获取目录列表的方法
2015/03/24 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
一个简单的php路由类
2016/05/29 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
秋季运动会活动方案
2014/02/05 职场文书
婚礼秀策划方案
2014/05/19 职场文书
保送生自荐信
2015/03/06 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
党员转正大会主持词
2015/07/02 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫