php简单分页

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.分页原理

所谓分页显示,也就是讲数据库中的结果集,一段一段显示出来

怎么分段,当前在第几段 (每页有几条,当前再第几页)

前10条记录:select * from table limit 0,10
第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>&nbsp;&nbsp;';
for($i=1;$i<=5;$i++){
    echo '<a href="./slicepage.php?page_number='.$i.'">第'.$i.'页</a>&nbsp;&nbsp;';   
}
echo '<a href="slicepage.php?page_number='.($current_page_number-1).'">上一页</a>&nbsp;&nbsp;';
echo '<a href="slicepage.php?page_number='.($current_page_number+1).'">下一页</a>&nbsp;&nbsp;';
echo '<a href="slicepage.php?page_number='.($total_pages).'">尾页</a>&nbsp;&nbsp;';
// 释放数据连接资源
mysqli_free_result($result);
mysqli_close($conn);

?>



好了,php分页已经实现了,希望这篇对你们有帮助,有错误的地方给我留言,谢谢。如果有兴趣可以去尝试用面向对象的方法写一个分页类。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值