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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
PHP学习之数组值的操作
Apr 17 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Nov 26 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
php中cookie的使用方法
Mar 29 PHP
php创建无限级树型菜单
Nov 05 PHP
详解js异步文件加载器
Jan 24 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 07 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 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基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
小程序Request的另类用法详解
2019/08/09 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
Python程序语言快速上手教程
2012/07/18 Python
如何使用python爬取csdn博客访问量
2016/02/14 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
《翻越远方的大山》教学反思
2014/04/13 职场文书
股东合作协议书
2014/04/14 职场文书
企业文化标语口号
2014/06/09 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
Nginx进程调度问题详解
2021/09/25 Servers
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL