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 相关文章推荐
文件上传的实现
Oct 09 PHP
一段防盗连的PHP代码
Dec 06 PHP
PHP中的float类型使用说明
Jul 27 PHP
PHP生成不同颜色、不同大小的tag标签函数
Sep 23 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
PHP图像裁剪缩略裁切类源码及使用方法
Jan 07 PHP
java模拟PHP的pack和unpack类
Apr 13 PHP
微信支付开发发货通知实例
Jul 12 PHP
php微信公众号开发模式详解
Nov 28 PHP
php文件操作之文件写入字符串、数组的方法分析
Apr 15 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
PHP多个版本的分析解释
2011/07/21 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
jQuery的框架介绍
2016/05/11 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
Python及PyCharm下载与安装教程
2017/11/18 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
python模块导入的方法
2019/10/24 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
HTML5实现签到 功能
2018/10/09 HTML / CSS
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
中文系学生自荐信范文
2013/11/13 职场文书
工程班组长岗位职责
2013/12/30 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
文明单位创建材料
2014/12/24 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB