PHP+mysql实现分页功能

https://blog.csdn.net/qq_39235930/article/details/82820800

 

核心代码
如果这里看懂了,下面就不用看啦.

我这里用到的是 $_GET[] 方法 -->从<form action=‘链接’ ]中.

如【下面的代码复制黏贴,稍微修改一下就可以输出】
html:

<form id="form1" name="form1" method="post"
action="get1.php?page=1">
   
     code...
     
</form>

php(get1.php):

<?php

   $currentPage = $_GET['page']; // 当前页面=GET方法得到的 page 的值

   $allPageNum = getPageNum(); // 函数(这里暂且不写实现方法), 返回的是总页数

   for ($i=1; $i <=$allPageNum ; $i++) { // i=1 循环到页数完毕,也就是<= $allPageNum
  
  if($i == $currentPage){ // 如果等于当前页数
   echo ' ['.$currentPage.'] '; // 因为是当前页面就不用跳转了,不用设置<a href=''>属性
   continue; // 下个循环
  }// end if
  
 echo ' <a href="get.php?page='.$i.'">'.$i.'</a> ';
 
 }// end for

?>

假设 allPageNum =8;currentPage=3;
输出结果:
1 2 [3] 4 5 6 7 8

<?php
// 先设置获取页数,页数容量的函数

 function getPageContain(){  // Function 获取页数容量
  $pageContainNum = 3; // 设置一页显示多少内容
  return $pageContainNum; // 返回页数容量
 }
 
 
 function getPageNum($all){ // Function 获取总页数
 // $all 是总的数据容量-- 我是通过遍历数据库得到.
 
  $pageContentNum = getPageContain(); // 获取页数容量
  $page = ceil($all/$pageContentNum); //页数 = 向上原整【 (内容总数) /(页面容量) 】

  return $page; // 返回页数
 }

?>

<?php

// 此段代码可以忽视 -- 获取总数的
    $sql ='select * from comment where id='.$id;
 $res = $db->query($sql) or die('no search'. $sql);
 $num=0;// 总数
 foreach ($res as $row) {
  ++$num; // 获取所有条数
 }
// 此段代码可以忽视 -- 获取总数的

 
 // 获取总页数
 $page = getPageNum($num);  // $num -- 总数据数量
 // 获取当前页数(开头讲到的方法) 
 $currentPage = $_GET['page'];
 //获取页数容纳的数量
 $pageContentNum = getPageContain();
 
 /*
 当前页的开始输出的条数 =
 页数容纳的数量*(当前页数-1)*/
 $pageFirst =
 $pageContentNum*($currentPage-1); 
 
 /*
 这一句的解说在下面
 [mysql 用limit方法的详解]
 */
 $sql = 'select * from comment where id="'.$id.
 '" limit '.$pageFirst.','.$pageContentNum;
 $res = $db->query($sql); // 遍历数据库
?>

mysql 用limit方法的详解(摘自网络)

mysql中用limit 进行分页:
例1,假设数据库表student存在13条数据。
代码示例:
语句1:select * from student limit 9,4

语句1返回表student的第10、11、12、13行 ,第一个参数表示从该参数的下一条数据开始,第二个参数表示每次返回的数据条数。

结语:
我是使用mysql和php配合生成页数的
,所以只要掌握了
[1]php自身生成页面的核心代码
[2]mysql用limit方法。

 

相关推荐

网友评论(0)