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 相关文章推荐
pw的一个放后门的方法分析
Oct 08 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
php遍历类中包含的所有元素的方法
May 12 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
PHP对象相关知识总结
Apr 09 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 15 PHP
PHP利用DWZ.CN服务生成短网址
Aug 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向socket服务器收发数据的方法
2015/01/24 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
vue.js前后端数据交互之提交数据操作详解
2018/04/24 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
python开发中module模块用法实例分析
2015/11/12 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
Python实现Kmeans聚类算法
2020/06/10 Python
Python删除n行后的其他行方法
2019/01/28 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
在pycharm中显示python画的图方法
2019/08/31 Python
几道数据库的面试题或笔试题
2014/05/31 面试题
优秀学生干部个人的自我评价
2013/10/04 职场文书
技校生自我鉴定
2013/12/08 职场文书
办公室岗位职责
2014/02/12 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
初中班主任心得体会
2016/01/07 职场文书
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android