php简单分页实现
在这儿我将给新手分享我以前写的一个简单的php分页代码。
1.首先我们需要知道sql中limit的用法
例子:
取前20条记录:SELECT * FROM table …… limit 0 , 20
从第11条开始取20条记录:SELECT * FROM table …… limit 10 , 20
LIMIT n 等价于 LIMIT 0,n。
如select * from table LIMIT 5; //返回前5行,和 select * from table LIMIT 0,5一样
2.分页原理
所谓分页显示,也就是讲数据库中的结果集,一段一段显示出来
怎么分段,当前在第几段 (每页有几条,当前再第几页)
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
分页公式:
(当前页数 - 1 )X 每页条数 , 每页条数
Select * from table limit ($Page- 1) * $PageSize, $PageSize
3.代码加显示
<meta charset="utf-8">
<?php
header("Content-type=text/html;charset=utf-8");
//初始化一些数据库信息
$host="localhost";
$username="root";
$password="199541";
$dbname="test";
//开始获取数据库链接
$conn = new mysqli($host,$username,$password,$dbname);
//获取记录总条数
$sql="select count(*) from user";
$total_num_result=$conn->query($sql);
//var_dump($total_num_result);
$total_num=$total_num_result->fetch_row();
echo "总的记录数位: ".$total_num[0]."<br>";
//获得总页数,一般来说页面大小是固定的,所以这里定为一页5个数据
$page_size = 5 ;
$total_pages = ceil($total_num[0]/$page_size);
echo "总页数为:".$total_pages;
echo "<br >";
//通过get方式获取客户端访问的页码
$current_page_number = isset($_GET['page_number'])?$_GET['page_number']:1;
if($current_page_number<1) {
$current_page_number =1;
}
if($current_page_number>$total_pages){
$current_page_number = $total_pages;
}
echo "要访问的页码为:".$current_page_number;
// 获取到了要访问的页面以及页面大小,下面开始分页
$begin_position = ($current_page_number-1)*$page_size;
//$begin_position = 2;
$sql = "select * from user limit $begin_position,$page_size";
$result =$conn->query($sql);
//var_dump($result);
// 处理结果集
//$row1=mysqli_num_rows($result);
//var_dump($row);
echo '<table border="1" bgcolor="red" width="500px" >';
echo "<tr style='font-size:20px'><th>name</th><th>password</th></tr>";
while(($row = $result->fetch_object())){
echo "<tr style='font-size:20px;text-align:center'>";
echo "<td >".$row->name."</td>";
echo "<td >".$row->password."</td>";
//var_dump($row);
echo "</tr>";
}
echo "</table>";
// 循环显示总页数
?>
<?php
echo '<a href="slicepage.php?page_number=1">首页</a> ';
for($i=1;$i<=5;$i++){
echo '<a href="./slicepage.php?page_number='.$i.'">第'.$i.'页</a> ';
}
echo '<a href="slicepage.php?page_number='.($current_page_number-1).'">上一页</a> ';
echo '<a href="slicepage.php?page_number='.($current_page_number+1).'">下一页</a> ';
echo '<a href="slicepage.php?page_number='.($total_pages).'">尾页</a> ';
// 释放数据连接资源
mysqli_free_result($result);
mysqli_close($conn);
?>
好了,php分页已经实现了,希望这篇对你们有帮助,有错误的地方给我留言,谢谢。如果有兴趣可以去尝试用面向对象的方法写一个分页类。