用php实现分页效果的示例代码


Posted in PHP onDecember 10, 2020

分页效果在网页中是常见的,可是怎样才能实现分页呢,今天做了两种方法来实现一下分页的效果

首先,我们需要准备在数据库里面准备一个表,并且插入数据,这些都是必需的前提工作了,不多说,如图所示(库名为jereh,表名为n_content):

用php实现分页效果的示例代码

步骤分析:

我们需要分页的话,需要用到 "select * from tableName limit num1,num2”;这是一个限定查询的语句,后面跟两个参数,num1为从第几个开始查找,num2为查找的信息的个数,如我想查找2,3,4这三条数据,如下图所示

用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" style="text-align: center" 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">首页</a>
  <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>">上一页</a>
  <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>">下一页</a>
  <a href="?pageNum=<?php echo $endPage?>">尾页</a>

总的代码如下:

<!DOCTYPE html>
<html lang="en">
<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" style="text-align: center" 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">首页</a>
  <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>">上一页</a>
  <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>">下一页</a>
  <a href="?pageNum=<?php echo $endPage?>">尾页</a>

</div>

</body>
</html>

效果如下:

用php实现分页效果的示例代码

到此这篇关于用php实现分页效果的示例代码的文章就介绍到这了,更多相关php实现分页内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
source.php查看源文件
Dec 09 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
PHP生成随机用户名和密码的实现代码
Feb 27 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
Jun 18 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 PHP
PHP中addcslashes与stripcslashes函数用法分析
Jan 07 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 PHP
php获取文件名称和扩展名的方法
Feb 07 PHP
php面向对象程序设计入门教程
Jun 22 PHP
PHP笛卡尔积实现原理及代码实例
Dec 09 #PHP
PHP基于进程控制函数实现多线程
Dec 09 #PHP
PHP如何防止用户重复提交表单
Dec 09 #PHP
Nginx+php配置文件及原理解析
Dec 09 #PHP
thinkphp诸多限制条件下如何getshell详解
Dec 09 #PHP
HTTP头隐藏PHP版本号实现过程解析
Dec 09 #PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 #PHP
You might like
PHP 已经成熟
2006/12/04 PHP
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
2015/08/21 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
Python selenium 三种等待方式解读
2016/09/15 Python
Python中with及contextlib的用法详解
2017/06/08 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
Python的argparse库使用详解
2018/10/09 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
python opencv肤色检测的实现示例
2020/12/21 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
公务员职业生涯规划书范文  
2014/01/19 职场文书
小学运动会表扬稿
2014/01/19 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
党员个人自我评价
2015/03/03 职场文书
民事起诉状范文
2015/05/19 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书