用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 相关文章推荐
PHP 和 MySQL 基础教程(二)
Oct 09 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
php的大小写敏感问题整理
Dec 29 PHP
写出高质量的PHP程序
Feb 04 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
PHP文件上传主要代码讲解
Sep 30 PHP
ThinkPHP3.1新特性之查询条件预处理简介
Jun 19 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
PHP实现的购物车类实例
Jun 17 PHP
php 输入输出流详解及示例代码
Aug 25 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 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强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
Python标准库之collections包的使用教程
2017/04/27 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
班子四风对照检查材料
2014/08/21 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
甲午大海战观后感
2015/06/02 职场文书
茶花女读书笔记
2015/06/29 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书