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 ajax 分页类代码
Nov 13 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
解析func_num_args与func_get_args函数的使用
Jun 24 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
php写的AES加密解密类分享
Jun 20 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 PHP
PHP高效获取远程图片尺寸和大小的实现方法
Oct 20 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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读取csv文件并输出的方法
2015/03/14 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
JavaScript高级程序设计
2006/12/29 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
Python实现删除文件但保留指定文件
2015/06/21 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
Django如何将URL映射到视图
2019/07/29 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
年终奖发放方案
2014/06/02 职场文书
化工实习心得体会
2014/09/09 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
长城英文导游词
2015/01/30 职场文书
专家推荐信怎么写
2015/03/25 职场文书
材料员岗位职责范本
2015/04/11 职场文书
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电