用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 相关文章推荐
escape unescape的php下的实现方法
Apr 27 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
PHP中MVC模式的模板引擎开发经验分享
Mar 23 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 PHP
php ci框架中加载css和js文件失败的原因及解决方法
Jul 29 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
php生成图片缩略图的方法
Apr 07 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
PHP微信开发之有道翻译
Jun 23 PHP
PHP简单遍历对象示例
Sep 28 PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 PHP
phpStudy 2016 使用教程详解(支持PHP7)
Oct 18 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
9个PHP开发常用功能函数小结
2011/07/15 PHP
php遍历所有文件及文件夹的方法深入解析
2013/06/08 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
使用Python设计一个代码统计工具
2018/04/04 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python 回溯法模板详解
2020/02/26 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
小学岗位竞聘方案
2014/01/22 职场文书
小学语文教学反思
2014/02/10 职场文书
先进班组材料范文
2014/12/25 职场文书
五年级学生评语大全
2014/12/26 职场文书
法律意见书范本
2015/06/04 职场文书
简爱读书笔记
2015/06/26 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电