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中在数据库中保存Checkbox数据(1)
Oct 09 PHP
模仿OSO的论坛(三)
Oct 09 PHP
PHP Array交叉表实现代码
Aug 05 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
PHP英文字母大小写转换函数小结
May 03 PHP
php动态绑定变量的用法
Jun 16 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
通过实例解析PHP数据类型转换方法
Jul 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数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
php下目前为目最全的CURL中文说明
2010/08/01 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
比较详细PHP生成静态页面教程
2012/01/10 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
Js动态创建div
2008/09/25 Javascript
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
express 项目分层实践详解
2018/12/10 Javascript
JS实现吸顶特效
2020/01/08 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
python 列表降维的实例讲解
2018/06/28 Python
Python坐标线性插值应用实现
2019/11/13 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
入党自我评价范文
2014/02/02 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
Win11 BitLocker 驱动器加密
2022/04/19 数码科技