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获取类中常量,属性,及方法列表的方法
Apr 09 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
PHP循环函数使用介绍之PHP基础入门教程
Sep 21 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
一个简单的PHP验证码实现代码
May 10 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
详谈PHP面向对象中常用的关键字和魔术方法
Feb 04 PHP
利用php生成验证码
Feb 23 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
python进程与线程小结实例分析
Nov 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 - Html Transfer Code
2006/10/09 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
浅析node.js中close事件
2014/11/26 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
jQuery.validate.js表单验证插件的使用代码详解
2018/10/22 jQuery
JS实现灯泡开关特效
2020/03/30 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
Python脚本实现虾米网签到功能
2016/04/12 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
如何利用python生成MD5并去重
2020/12/07 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
Linux操作面试题
2012/05/16 面试题
工商管理专业毕业生求职信
2014/05/26 职场文书
学校创先争优活动总结
2014/08/28 职场文书
学习型党组织心得体会
2014/09/12 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
党支部承诺书
2015/01/20 职场文书
公司人力资源管理制度
2015/08/05 职场文书
公司食堂管理制度
2015/08/05 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
anaconda python3.8安装后降级
2021/06/11 Python