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初学者(入门学习经验谈)
Oct 12 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
php对象工厂类完整示例
Aug 09 PHP
在TP5数据库中四个字段实现无限分类的示例
Oct 18 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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日历制作代码分享
2014/01/20 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
详解JS模块导入导出
2017/12/20 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
Python牛刀小试密码爆破
2011/02/03 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
详解Python的Lambda函数与排序
2016/10/25 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
django url到views参数传递的实例
2019/07/19 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
Hotels.com南非:酒店预订
2017/11/02 全球购物
巴西女装购物网站:Eclectic
2018/04/24 全球购物
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
卫校护理专业毕业生求职信
2013/11/26 职场文书
联谊会主持词
2014/03/26 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
Python中使用ipython的详细教程
2021/06/22 Python