您好,登录后才能下订单哦!
今天就跟大家聊聊有关使用php怎么实现分页功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1、建立一个函数,用来实现限制查询的功能
首先我们来想一下,实现这个功能我们首先要知道当前的页数和要限制的一个页面显示几条信息,这个可以用形参传过来。那么,
我们设置pageNum为页数,pageSize为一个页面显示几条数据,在 "select * from tableName limit num1,num2”这个查询语句中,
num1就是(pageNum-1)*pageSize,num2就是pageSize,明白了这个关系之后,那么就好办了,代码在下面:
//分页的函数
function news($pageNum = 1, $pageSize = 3)
{
 $array = array();
 $coon = mysqli_connect("localhost", "root");
 mysqli_select_db($coon, "jereh");
 mysqli_set_charset($coon, "utf8");
 // limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度
 $rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageSize;
 $r = mysqli_query($coon, $rs);
 while ($obj = mysqli_fetch_object($r)) {
  $array[] = $obj;
 }
 mysqli_close($coon,"jereh");
 return $array;
}上面的代码中,值得注意的是,limit后面一定要加一个空格,不然会出错误。
2、建立第二个函数,用来显示总页数的函数
这个没什么新的知识点,都是以前写过的知识点了,直接看代码吧。
//显示总页数的函数
function allNews()
{
 $coon = mysqli_connect("localhost", "root");
 mysqli_select_db($coon, "jereh");
 mysqli_set_charset($coon, "utf8");
 $rs = "select count(*) num from n_content"; //可以显示出总页数
 $r = mysqli_query($coon, $rs);
 $obj = mysqli_fetch_object($r);
 mysqli_close($coon,"jereh");
 return $obj->num;
}3、调用这两个函数,进行初步的处理
我们想做下一页、下一页的结果,需要用到get方法在本页面传数据,那么我们在刷新页面的时候,肯定get是得不到数据的,所以需要用三目运算了。
<?php @$allNum = allNews(); @$pageSize = 3; //约定每页显示的信息条数 @$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"]; @$endPage = ceil($allNum/$pageSize); //总页数 @$array = news($pageNum,$pageSize); ?>
4、在页面进行显示
在页面显示的话,需要用到了foreach循环了,代码简单,看下面:
<table border="1"  cellpadding="0">
 <tr>
  <td>编号</td>
  <td>新闻标题</td>
  <td>来源</td>
  <td>点击率</td>
  <td>发布日期</td>
 </tr>
 <?php
 foreach($array as $key=>$values){
  echo "<tr>";
  echo "<td>{$values->id}</td>";
  echo "<td>{$values->title}</td>";
  echo "<td>{$values->src}</td>";
  echo "<td>{$values->indexs}</td>";
  echo "<td>{$values->times}</td>";
  echo "</tr>";
 }
 ?>
</table>5、实现上一页,下一页的效果
要实现页面跳转的效果,我们需要用到了a标签的href属性,地址写“?pageNum = ...”这个pageNum是我们自己定义的,由于是get来传递的,在上一步里面我们已经用$_GET接受了参数,所以我们只需要进行get的参数传递就可以了;
首页:“pageNum=1”;
上一页:"pageNum=<?php echo $pageNum==1?1:$pageNum-1?>"
下一页:"pageNum=<?php echo $pageNum==$endPage ?$endPage :$pageNum+1?>"
尾页:“pageNum=<?php echo $pageNum =$endPage?>”;
特别注意的是,”pageNum=”的时候后面千万千万不要空格,代码如下:
<a href="?pageNum=1" rel="external nofollow" rel="external nofollow" >首页</a> <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>" rel="external nofollow" rel="external nofollow" >上一页</a> <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>" rel="external nofollow" rel="external nofollow" >下一页</a> <a href="?pageNum=<?php echo $endPage?>" rel="external nofollow" rel="external nofollow" >尾页</a>
代码如下:
<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>分页</title>
 <?php
 
//分页的函数
function news($pageNum = 1, $pageSize = 3)
{
 $array = array();
 $coon = mysqli_connect("localhost", "root");
 mysqli_select_db($coon, "jereh");
 mysqli_set_charset($coon, "utf8");
 // limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度
 $rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageSize;
 $r = mysqli_query($coon, $rs);
 while ($obj = mysqli_fetch_object($r)) {
  $array[] = $obj;
 }
 mysqli_close($coon,"jereh");
 return $array;
}
 
//显示总页数的函数
function allNews()
{
 $coon = mysqli_connect("localhost", "root");
 mysqli_select_db($coon, "jereh");
 mysqli_set_charset($coon, "utf8");
 $rs = "select count(*) num from n_content"; //可以显示出总页数
 $r = mysqli_query($coon, $rs);
 $obj = mysqli_fetch_object($r);
 mysqli_close($coon,"jereh");
 return $obj->num;
}
 
 @$allNum = allNews();
 @$pageSize = 3; //约定没页显示几条信息
 @$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"];
 @$endPage = ceil($allNum/$pageSize); //总页数
 @$array = news($pageNum,$pageSize);
 ?>
</head>
<body>
<table border="1"  cellpadding="0">
 <tr>
  <td>编号</td>
  <td>新闻标题</td>
  <td>来源</td>
  <td>点击率</td>
  <td>发布日期</td>
 </tr>
 <?php
 foreach($array as $key=>$values){
  echo "<tr>";
  echo "<td>{$values->id}</td>";
  echo "<td>{$values->title}</td>";
  echo "<td>{$values->src}</td>";
  echo "<td>{$values->indexs}</td>";
  echo "<td>{$values->times}</td>";
  echo "</tr>";
 }
 ?>
</table>
<div>
 <a href="?pageNum=1" rel="external nofollow" rel="external nofollow" >首页</a>
 <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>" rel="external nofollow" rel="external nofollow" >上一页</a>
 <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>" rel="external nofollow" rel="external nofollow" >下一页</a>
 <a href="?pageNum=<?php echo $endPage?>" rel="external nofollow" rel="external nofollow" >尾页</a>
 
</div>
 
</body>
</html>1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:PHP提供了类和对象。5、版本更新速度快。6、具有丰富的功能。7、可伸缩性。8、功能全面,包括图形处理、编码与解码、压缩文件处理、xml解析等。
看完上述内容,你们对使用php怎么实现分页功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。