用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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
简单的PHP留言本实例代码
May 09 PHP
php 中文和编码判断代码
May 16 PHP
phpnow php探针环境检测代码
Nov 04 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
Apr 03 PHP
PHP使用缓存即时输出内容(output buffering)的方法
Aug 03 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
PHP类的自动加载与命名空间用法实例分析
Jun 05 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
服务器web工具 php环境下
2010/12/29 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
JS的replace方法介绍
2012/10/20 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
跟我学习javascript的执行上下文
2015/11/18 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
python看某个模块的版本方法
2018/10/16 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
Django实现基于类的分页功能
2019/10/31 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
澳大利亚体育和露营装备在线/实体零售商:Find Sports
2020/06/03 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
Linux如何为某个操作添加别名
2015/02/05 面试题
介绍一下write命令
2012/09/24 面试题
求职推荐信范文
2013/12/01 职场文书
承诺书样本
2014/08/30 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
委托书范本格式
2019/04/18 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书