用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获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
PHP获取数组的键与值方法小结
Jun 13 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
使用PHP实现微信摇一摇周边红包
Jan 04 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
PHP的反射机制实例详解
Mar 29 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 15 PHP
php微信小程序解包过程实例详解
Mar 31 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 输出简单动态WAP页面
2009/06/09 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
模仿jQuery each函数的链式调用
2009/07/22 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
Angular4编程之表单响应功能示例
2017/12/13 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
Python 递归函数详解及实例
2016/12/27 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
PyTorch预训练的实现
2019/09/18 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
信息部岗位职责
2013/11/12 职场文书
给女儿的表扬信
2014/01/18 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
学习教师法的心得体会
2014/09/03 职场文书
财务务虚会发言材料
2014/10/20 职场文书
避暑山庄导游词
2015/02/04 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
oracle覆盖导入dmp文件的2种方法
2021/05/21 Oracle