PHP使用Mysqli类库实现完美分页效果的方法


Posted in PHP onApril 07, 2016

本文实例讲述了PHP使用Mysqli类库实现完美分页效果的方法。分享给大家供大家参考,具体如下:

本篇文章是基于的是我的上篇文章《PHP数据库操作之基于Mysqli的数据库操作类库》而量身打造,怎么使用 M 类库中的 FetchAll 方法做出完美分页。

分页在我们每个项目中都是必不可少的,而且出现的频率非常之多。这样就要求我们程序员在项目中怎样去以最快的速度、最简洁的代码去实现分页方案。

分页的实现大部分是依据 URL 传入的参数(一般是page)来实现,比如:http://localhost/article.php?page=2 表示取第二页数据

建议:您在看本篇文章之时,请确保您已学习过我的上篇文章《PHP数据库操作之基于Mysqli的数据库操作类库》

下面我们根据 M 类库来进行分页的讲解,博文中出现的代码,最后附有下载地址,包括测试数据库文件。

1、建立配置文件 config.inc.php

代码清单如下

<?php
header('Content-Type:text/html;Charset=utf-8'); //设置header编码
define('ROOT_PATH', dirname(__FILE__)); //设置根目录
define('DB_HOST', 'localhost'); //数据库服务器地址
define('DB_USER', 'root'); //数据库用户名
define('DB_PWD', '×××');//数据库密码,请根据机器填写
define('DB_NAME', '×××'); //数据库名称,请根据机器填写
define('DB_PORT', '3306'); //数据库端口,请根据机器填写
function __autoload($className) {
  require_once ROOT_PATH . '/includes/'. ucfirst($className) .'.class.php'; //自动加载类库文件
}
?>

2、建立资讯测试文件 article.php

注:因本人 CSS 能力有限,所以为了演示功能,只使用了单纯的 HTML
代码清单及注释如下

<?php
require 'config.inc.php'; //引入配置文件
$m = new M(); //实例化 M 类
$total = $m->Total('jzy_article'); //资讯文章总数
$page = new Page($total, 20); //实例化分页类
/*
注意事项:
1、实例分页 Page 类的时候,需要传两个参数:记录总数;每页显示的记录数。
2、当传入参数后,Page 类中有个setLimit()方法会自动计算出 SQL 中的 limit 值。比如:URL 参数中 page 为1的时候,limit 值为“0,20”;为2的时候,limit 值为“20,20”……
3、计算出来的 $page->limit,必须放在 FetchAll 方法中的最后一位,详情请查看 FetchAll 方法
*/
$data = $m->FetchAll("jzy_article", "title, source, writer, pubdate", "", "id DESC", $page->limit); //根据 M 类库中的 FetchAll 方法获取数据
?>
<style>
/* 分页样式 */
#page {text-align:right;  padding:10px;clear:both;}#page a {border:1px solid #666;padding:2px 5px;margin:0 2px;color:#3b6ea5;text-decoration:none;}#page a:hover,#page span.me {color:#fff;border:1px solid #000;background:#000;text-decoration:none;}#page span.disabled {border:1px solid #ccc;padding:2px 5px;margin:0 2px;color:#ccc;}#page span.me {padding:2px 5px;margin:0 2px;}
</style>
<table width="1000" border="1" style="border-collapse:collapse; font-size:13px;">
<tr height="30">
  <th width="483">标题</th>
  <th width="141">来源</th>
  <th width="154">作者</th>
  <th width="194">添加时间</th>
</tr>
<?php
foreach ($data as $v) { //循环取出数据
?>
<tr>
  <td> <?php echo $v['title']; ?></td>
  <td align="center"><?php echo $v['source']; ?></td>
  <td align="center"><?php echo $v['writer']; ?></td>
  <td align="center"><?php echo $v['pubdate']; ?></td>
</tr>
<?php
}
?>
<tr>
  <td id="page" colspan="4"><?php echo $page->fpage(); ?></td> <!-- 调出分页类 -->
</tr>
</table>

3、访问测试效果

打开浏览器,输入测试的url地址,你的浏览器应该会出现以下效果

PHP使用Mysqli类库实现完美分页效果的方法

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 字符串操作入门教程
Dec 06 PHP
关于PHP中Object对象的笔记分享
Jun 28 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 PHP
php实现简单的上传进度条
Nov 17 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
PHP实现随机生成水印图片功能
Mar 22 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
php二维数组按某个键值排序的实例讲解
Feb 15 PHP
php分享朋友圈的实现代码
Feb 18 PHP
Laravel-admin之修改操作日志的方法
Sep 30 PHP
Linux下编译redis和phpredis的方法
Apr 07 #PHP
php 实现进制相互转换
Apr 07 #PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 #PHP
php制作简单模版引擎
Apr 07 #PHP
thinkphp框架下实现登录、注册、找回密码功能
Apr 06 #PHP
非常有用的9个PHP代码片段
Apr 06 #PHP
10个对初学者非常有用的PHP技巧
Apr 06 #PHP
You might like
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
JS运动特效之链式运动分析
2018/01/24 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
详解Python当中的字符串和编码
2015/04/25 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
食堂员工工作职责
2013/12/18 职场文书
拓展培训心得体会
2014/01/04 职场文书
优秀交警事迹材料
2014/01/26 职场文书
我的理想演讲稿
2014/04/30 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
2014年终工作总结范本
2014/12/15 职场文书
离婚代理词范文
2015/05/23 职场文书
亮剑观后感
2015/06/05 职场文书
检讨书格式
2019/04/25 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js