Heim  >  Artikel  >  Backend-Entwicklung  >  PHP使用Mysqli类库实现完美分页效果的方法

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

PHPz
PHPzOriginal
2016-05-16 19:54:322208Durchsuche


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

相关mysql视频教程推荐:《mysql教程

怎么使用 M 类库中的 FetchAll 方法做出完美分页。

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

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

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

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

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

代码清单如下

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

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

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

<?php
require &#39;config.inc.php&#39;; //引入配置文件
$m = new M(); //实例化 M 类
$total = $m->Total(&#39;jzy_article&#39;); //资讯文章总数
$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[&#39;title&#39;]; ?></td>
  <td align="center"><?php echo $v[&#39;source&#39;]; ?></td>
  <td align="center"><?php echo $v[&#39;writer&#39;]; ?></td>
  <td align="center"><?php echo $v[&#39;pubdate&#39;]; ?></td>
</tr>
<?php
}
?>
<tr>
  <td id="page" colspan="4"><?php echo $page->fpage(); ?></td> <!-- 调出分页类 -->
</tr>
</table>

3、访问测试效果

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

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn