PHP入门(16) 使用mysqli实现简单的分页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP入门(16) 使用mysqli实现简单的分页相关的知识,希望对你有一定的参考价值。
前几天正好学习了如何使用php自带的api操作mysql数据库,正好拿一下分页这个小案例练一下手。
关于分页的算法有很多,这里仅仅介绍很简单的一种。
分页的原理:
首先获得总共含有多少行$row_num,总行数除以每页的行数$page_size,向上取整得到总共有多少页$page_num。
容易得到第page页的第一条记录是整张表的第($page-1)*page_size条记录,记为$offset
(注意:行索引是从0开始的)
然后应用mysql的limit关键字 获取每一页的记录结果显示出来即可。
select * from test limit offset, page_size;
具体实现代码:两个文件conn.php indes.php
/*conn.php*/ <?php $mysqli = new mysqli("localhost","root","123456","mydb") or die("数据库连接失败!".$mysqli->errno);
/*index.php*/ <?php include_once("conn/conn.php"); $page = $_GET["page"]; if($page == ""){ $page = 1; } if(is_numeric($page)) { $page_size = 4; $res = $mysqli->query("select * from test"); $row_count = $res->num_rows; $page_num = ceil($row_count / $page_size); $offset = ($page - 1) * $page_size; $res = $mysqli->query("select * from test limit $offset,$page_size"); while ($row = $res->fetch_assoc()) { echo "<table><tr>"; echo "<td>".$row["id"]."</td>"; echo "</table>"; } } echo "总共有".$page_num."页记录"; echo "<br>"; if($page != 1) { echo "<a href=index.php?page=1>首页</a>";//index.php的路径不加引号也可以 echo "<a href=index.php?page=".($page - 1).">上一页</a>";//如果表达式不是直接的变量,必须计算出来之后使用.连接 } for($i=1;$i<=$page_num;$i++){ echo "<a href=index.php?page=".$i.">第$i 页 </a>"; } if($page < $page_num) { echo "<a href=index.php?page=".($page + 1).">下一页</a>"; echo "<a href=index.php?page=$page_num>尾页</a>"; }
本文出自 “厚积薄发” 博客,请务必保留此出处http://joedlut.blog.51cto.com/6570198/1857808
以上是关于PHP入门(16) 使用mysqli实现简单的分页的主要内容,如果未能解决你的问题,请参考以下文章