php实现分页功能的详细实例方法

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

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

步骤分析:

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

好了,我们开始说步骤:

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" rel="external nofollow" rel="external nofollow" >首页</a>

<a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>" rel="external nofollow" rel="external nofollow" >上一页</a>

<a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>" rel="external nofollow" rel="external nofollow" >下一页</a>

<a href="?pageNum=<?php echo $endPage?>" rel="external nofollow" rel="external nofollow" >尾页</a>

代码如下:

<!DOCTYPE html>

<html>

<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" rel="external nofollow" rel="external nofollow" >首页</a>

 <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>" rel="external nofollow" rel="external nofollow" >上一页</a>

 <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>" rel="external nofollow" rel="external nofollow" >下一页</a>

 <a href="?pageNum=<?php echo $endPage?>" rel="external nofollow" rel="external nofollow" >尾页</a>

</div>

</body>

</html>

以上就是php如何实现分页功能的详细内容,感谢大家的学习和对我们的支持。

(0)

相关推荐

  • PHP简单实现数字分页功能示例

    本文实例讲述了PHP简单实现数字分页功能.分享给大家供大家参考,具体如下: <?php header ( 'Content-Type: text/html; charset=utf-8' ); //分页 $page=$_GET['page']; $allcount= 100; $page_size =10; $page_show =5; $page_count = ceil($allcount/$page_size); if($page <= 1 || $page == '') $page =

  • php基于SQLite实现的分页功能示例

    本文实例讲述了php基于SQLite实现的分页功能.分享给大家供大家参考,具体如下: 这里操作数据库文件使用的是前面文章<PHP基于PDO实现的SQLite操作类[包含增删改查及事务等操作]>中的SQLite数据库操作类.废话不说,直接上代码: <meta charset='utf-8'> <?php class SqlitePage{ public function __construct() { $this->table_name=''; $this->tj=

  • php实现的后台表格分页功能示例

    本文实例讲述了php实现的后台表格分页功能.分享给大家供大家参考,具体如下: <?php //init.php $conn = mysqli_connect('127.0.0.1','root','','xz',3306); $sql = "SET NAMES UTF8"; mysqli_query($conn,$sql); $pagecount = 3; ?> user.php: <?php //用户管理 echo "用户管理<br/>&quo

  • PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】

    本文实例讲述了PHP+Ajax实现的无刷新分页功能.分享给大家供大家参考,具体如下: 注:本文中使用到的一些类库在前面文章都能找到源代码,我会在文中指明链接所在,为了缩短文章篇幅,由此带来的阅读不便,敬请谅解. 本文讲解 Ajax 实现无刷新分页.实现原理.代码展示.代码下载. 这里需要说明一些知识: 1.Ajax 无刷新页面的好处:提供良好的客户体验,通过 Ajax 在后台从数据库中取得数据并展示,取缔了等待加载页面而出现的空白状态: 2.那么,Ajax 无刷新页面是运行在动态页面(.php)

  • php实现分页功能的3种方法第1/3页

    直接上代码,希望大家仔细阅读. 方法一:讲sql查询进行分页进行,需要调用几个函数,具体见脚本: 1.pager.class.php <?php class pager { public $sql; //SQL查询语句 public $datanum; //查询所有的数据总记录数 public $page_size; //每页显示记录的条数 protected $_errstr; protected $_conn; protected $_query_id; public function qu

  • 利用PHP访问数据库_实现分页功能与多条件查询功能的示例

    1.实现分页功能 <body> <table width="100%" border="1"> <thead> <tr> <th>代号</th> <th>名称</th> <th>价格</th> </tr> </thead> <tbody> <?php require_once "./DBDA.cl

  • php实现分页功能的详细实例方法

    分页效果在网页中是常见的,可是怎样才能实现分页呢,今天做了两种方法来实现一下分页的效果. 首先,我们需要准备在数据库里面准备一个表,并且插入数据,这些都是必需的前提工作了,不多说,如图所示(库名为jereh,表名为n_content): 步骤分析: 我们需要分页的话,需要用到 "select * from tableName limit num1,num2";这是一个限定查询的语句,后面跟两个参数,num1为从第几个开始查找,num2为查找的信息的个数,如我想查找2,3,4这三条数据,

  • 给万博系统的新闻系统增加分页功能[配有详细说明]

    给万博系统的新闻系统增加分页功能,无需修改数据库,只需改变一个文件,就可以了. 如果将后台的Webediter增加一个插入分页符,那就更完美了.我还没加这个. 本例是在后台录入新闻时,在需要分页的位置插入分页符: {$html_page$} 就可以了. 代码如下,有详细说明 newsshow.asp <!--#include file="siteinfo.asp"--> <HTML> <HEAD> <TITLE><%=sitenam

  • vue实现一个简单的分页功能实例详解

    这是一个简单的分页功能,只能够前端使用,数据不能通过后台服务器进行更改,能容已经写死了. 下面的内容我是在做一个关于婚纱项目中用到的,当时好久没用vue了,就上网区找了别人的博客来看,发现只有关于element_ui的,基本全是,对自己没用什么用,就自己写了一个,效果如下: 点击相应的按钮切换到对应的内容内容: 下面我只发核心代码,css样式就不发了,自己想怎么写怎么写 <!-- 分页内容 --> <ul class="blog-lists-box"> <

  • Flutter 分页功能表格控件详细解析

    前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析. PaginatedDataTable PaginatedDataTable是一个带分页功能的DataTable,生成一批数据,项目中此一般通过服务器获取,定义model类: class User { User(this.name, this.age, this.sex); final String name; final int age; final String sex; } 生成数据: List<User> _d

  • MyBatis超详细讲解如何实现分页功能

    目录 概述: 一般用法: student表: Student.java StudentMapper.xml StudentService.java StudentServiceImpl.java AppTest.java 测试结果: 使用分页参数RowBound StudentMapper.xml 概述: 当希望能直接在数据库语言中只检索符合条件的记录,不需要再通过程序对其做处理时,SQL语句分页技术便横空出世了,通过SQL语句实现分页只需要改变查询语句就能实现,即在SQL语句后面添加limit

  • Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能

    2017年底了,总结了这一年多来的前端之路,Vue从入门到放弃,再二进宫,从 Vue1.0 持续跟踪到 Vue2.5.结合公司的一些实际项目,也封装了一些比较实用的组件. 由于现在公司管理平台主要运用Element UI,索性就结合组件Table 和 Pagination 封装了一个支持页面切换的Table组件,不啰嗦,直接上代码. 2.实现思路 2.1.Element UI 引入(整体引入) main.js // Element UI import Element from 'element-

  • vue+vuex+json-seiver实现数据展示+分页功能

    一丶项目分析 1.UI: 2.接口信息: 二丶项目环境 Mockjs:生成模拟数据(含中文名,以及地址) json-server:模拟后端接口 webpack-dev-server:开启服务器环境+接口代理 jquery:使用jquery的ajax拉取数据 vue+vuex:vuex负责数据交互,vue渲染页面 iviewui:ui组件,方便布局 搭建开发环境 1.基本环境 Vue起步(无cli) 安装: npm install --save Mockjs 使用: 详细API:mockjs.co

  • java ssm框架实现分页功能的示例代码(oracle)

    java web 实现分页功能,分享给大家,具体如下: 使用框架:ssm 数据库:oracle 话说 oracle 的分页查询比 mysql 复杂多了,在这里简单谈一下: 查询 前十条数据: SELECT * FROM( SELECT ROWNUM WN,RN.* FROM ( SELECT id, title, create_time as createTime, musictor, musictitle FROM krry_blog ORDER BY create_time desc )RN

  • Django实现基于类的分页功能

    开发个人博客时往往避免不了分页功能的实现,实现方法大体上分为函数和类两种.本文基于类实现分页功能,以下是详细代码: class Page: page_num = 0 total_count = 0 tartype = "" total_page = 0 # 总页数 per_page = 8 # 每页显示8篇文章 max_page = 11 # 每页最大展示页数选项 half_page = max_page // 2 category = "" # 标记该链接所属分类

  • Java List分页功能实现代码实例

    这篇文章主要介绍了Java List分页功能实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,工作上,由于业务的一些特殊性,需要拿到数据后在java代码中进行分页. 写了一个工具类,记录如下: import java.util.ArrayList; import java.util.List; import org.apache.commons.collections.CollectionUtils; /** * java内存分

随机推荐