Home > Article > Backend Development > PHP uses Mysqli class library to achieve perfect paging effect
The example in this article describes how PHP uses the Mysqli class library to achieve perfect paging effects. Share it with everyone for your reference, as follows:
Recommended related mysql video tutorials: "mysql tutorial"
How to use the FetchAll method in the M class library Make perfect pagination.
Pagination is essential in each of our projects, and it appears very frequently. This requires our programmers to implement the paging solution with the fastest speed and the most concise code in the project.
The implementation of paging is mostly based on the parameters passed in the URL (usually page), for example: http://localhost/article.php?page=2 means to get the second page data
Recommendation: When you read this article, please make sure you have studied my last article "PHP Database Operation: Database Operation Class Library Based on Mysqli"
Below we will use the M class library Let’s explain the paging, the code that appears in the blog post, and the download address at the end, including the test database file.
1. Create the configuration file config.inc.php
The code list is as follows
<?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 , Create an information test file article.php
Note: Due to my limited CSS ability, in order to demonstrate the function, I only used simple HTML
The code list and comments are as follows
<?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. Access test effect
Open the browser and enter the test URL address. Your browser should have the following effect
I hope this article will be helpful to everyone in PHP programming.