PHP-分页具体实现及代码

article/2025/10/12 23:56:44

数据分页概述

对大量数据进行分页显示是 Web 开发中最常见的情况,但大多刚开始接触 Web 开发的开发人员,对分页技术往往比较迷惘,本节教程以一个分页显示留言板的数据为例就来演示一下 PHP 中基本的数据分页显示原理。

本节教程需要用到的 PHP基础知识 :

  • PHP 预定义 $_GET 变量来接收 URL 参数信息,具体参见《PHP $_GET》。
  • if 流程控制,具体参见《PHP if ... else 流程控制》。
  • MySQL 数据库表基础知识,具体参见《MySQL 基本概念》。
  • MySQL 数据查询,具体参见《MySQL Select From 查询数据》
  • MySQL 数据查询,具体参见《MySQL LIMIT 限定查询记录数》。

数据准备

假设储存留言的数据表(guestbook)数据如下:
idnicknameemailcontentcreatetime
1adminadmin@5idev.com留言测试1264167501
2useruser@163.com大家好1264168127
3小明xiaoming@163.com做得好,继续努力。。1264168865
4小张xiaozhang@163.com来看看1264169118
5小丽xiaoli@tom.comhaha1283276566
6Tomtom@gmail.comHello1283336218
7Jackjack@hotmail.comokok1283336315
8adminadmin@5idev.com嗯嗯1283336315
9阿里巴巴alibaba@5idev.com来看看1283337158
10路人甲haha@163.com哈哈哈1283338228

建表 SQL 参考如下:

CREATE TABLE `guestbook` (`id` mediumint(8) unsigned NOT NULL auto_increment,`nickname` char(15) NOT NULL default '',`email` varchar(100) NOT NULL default '',`content` text NOT NULL,`createtime` int(10) unsigned NOT NULL default '0',PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

分页原理

目的很简单,就是将较多数据记录,分页显示出来,每一页显示设定的数据条数。

分页显示格式如下:

共 10 条留言 [1] 2 3

该格式比较简单,只显示了总的数据和各个分页数。当前页面显示为 [1] 这样的格式,非当前页面的页数则显示为超链接格式。

PHP 分页技术核心在于确定当前的页数,然后利用 MySQL 的 LIMIT 关键字来指定输出对应的记录数。

如当前是第 1 页时,那么就是 LIMIT 0,4(假设一页输出 4 条记录),第 2 页时,就是 LIMIT 4,4,第 3 页时,就是 LIMIT 8,4 … 依此类推,第 n 页时,就是 LIMIT (n-1)*4,4 。

而当前页数 $p 这个参数,通过 URL 来获取。如 http://127.0.0.1/guestbook/index.php?p=2 这个这个 URL 链接,表示当前为第 2 页,PHP 中通过 $_GET['p'] 来取得对应的页数值 2 。而对于首页,则没有 $p 这个参数,那么就设定为默认值 1 即可。


代码部分

数据库链接及参数设定

    //数据库连接
$con = @mysqli_connect("127.0.0.1","root","root","gbook");
if(!$con){
die("数据库连接错误".mysqli_connect_error());
}
mysqli_query($con,"set names 'utf8'");
//显示每页的留言数
$pagesize = 4;

输出当前页数据

	//确定页数p参数@$p = $_GET['p']?$_GET['p']:1;//数据指针$offset = ($p-1)*$pagesize;//查询本页现实的数据$query_sql = "select * from guestbook order by id desc limit $offset,$pagesize";# echo $query_sql;$result = mysqli_query($con,$query_sql);//循环输出while($gblist = mysqli_fetch_array($result)){echo  '<a href="',$gblist['nickname'],'">',$gblist['nickname'],'</a>';echo  '发表于:',date("Y-m-d H:i",@$gblist[createtime]),'<br/>';echo  '内容:',$gblist['content'],'<br/><hr/>';}

确定当前页参数 $p 中,使用了一个三元运算符:

$p = $_GET['p']?$_GET['p']:1;

可以这么通俗的理解该运算符:$_GET['p'] 存在吗?如果存在,那么 $p = $_GET['p'] ,如果不存在,那么 $p = 1 。

接下来就是读取当前页面显示数据的具体代码,该部分可参考《MySQL Select From 查询数据》。

输出分页格式

	//分页代码//计算留言总数$count_result = mysqli_query($con,"select count(*) as count from guestbook");$count_array = mysqli_fetch_array($count_result);//计算总的页数$pagenum = ceil($count_array['count']/$pagesize);echo '共',$count_array['count'],'条留言';//循环输出个页数及链接if($pagenum>1){for($i = 1;$i<=$pagenum;$i++){if($i == $p){echo '[',$i,']';}else{echo  ' <a href="gbook.php?p=',$i,'">',$i,'</a>';}}}

完整代码

完整代码如下:

<?php//数据库连接$con = @mysqli_connect("127.0.0.1","root","root","gbook");if(!$con){die("数据库连接错误".mysqli_connect_error());}mysqli_query($con,"set names 'utf8'");//显示每页的留言数$pagesize = 4;//确定页数p参数@$p = $_GET['p']?$_GET['p']:1;//数据指针$offset = ($p-1)*$pagesize;//查询本页现实的数据$query_sql = "select * from guestbook order by id desc limit $offset,$pagesize";# echo $query_sql;$result = mysqli_query($con,$query_sql);//循环输出while($gblist = mysqli_fetch_array($result)){echo  '<a href="',$gblist['nickname'],'">',$gblist['nickname'],'</a>';echo  '发表于:',date("Y-m-d H:i",@$gblist[createtime]),'<br/>';echo  '内容:',$gblist['content'],'<br/><hr/>';}//分页代码//计算留言总数$count_result = mysqli_query($con,"select count(*) as count from guestbook");$count_array = mysqli_fetch_array($count_result);//计算总的页数$pagenum = ceil($count_array['count']/$pagesize);echo '共',$count_array['count'],'条留言';//循环输出个页数及链接if($pagenum>1){for($i = 1;$i<=$pagenum;$i++){if($i == $p){echo '[',$i,']';}else{echo  ' <a href="gbook.php?p=',$i,'">',$i,'</a>';}}}
?>

实现效果






http://chatgpt.dhexx.cn/article/HfLDfX78.shtml

相关文章

计算机网络原理复习(一)

最近面试某公司的Linux C开发职位&#xff0c;面试的时候面试官提问了一些网络基础的知识&#xff0c;只是惭愧至极&#xff0c;好多知识点已经记忆模糊。周末花时间把网络原理的知识点整理了一下。 计算机网络体系结构&#xff1a; 网络体系结构&#xff1a; 按照我的理解 1…

计算机网络原理练习题及答案

计算机网络原理练习题及答案 读前必看&#xff0c;此篇为计算机网络原理复习对应的练习题。 第一部分传送门&#xff1a;待更新 文章目录 计算机网络原理练习题及答案练习1练习2练习3练习 4练习 5练习 6 练习1 某单位申请到一个B类IP地址&#xff0c;其网络标识&#xff08;N…

计算机网络原理 谢希仁(第8版)第一章习题答案

1-01 计算机网络可以向用户提供哪些服务&#xff1f; 1-02 试简述分组交换的要点。 答&#xff1a;采用了存储转发技术&#xff0c;即将报文&#xff08;要发送的整块数据&#xff09;划分为几个较小的等长数据段&#xff0c;在每个数据段前加上必要的控制信息组成的首部&#…

计算机网络原理(谢希仁第八版)第五章课后习题答案

第五章 35题&#xff0c;36题已经做了更正&#xff0c;特别感谢粉丝奈七七的答案。 1.试说明运输层在协议栈中的地位和作用&#xff0c;运输层的通信和网络层的通信有什么重要区别&#xff1f;为什么运输层是必不可少的&#xff1f; 答&#xff1a;运输层处于面向通信部分的最…

计算机网络原理学习笔记

目录 一. 计算机网络概述1.1 计算机网络基本概念1.2 计算机网络结构1.3 数据交换技术1.4 计算机网络性能1.4.1 速率与带宽1.4.2 时延1.4.3 时延带宽积1.4.4 丢包率1.4.5 吞吐量 1.5 计算机网络体系结构1.5.1 计算机网络分层体系结构1.5.2 OSI 参考模型1.5.3 OSI 参考模型有关术…

计算机网络原理(谢希仁第八版)第一章课后习题答案

第一章 1.计算机网络可以向用户提供哪些服务&#xff1f; 答&#xff1a;例如音频&#xff0c;视频&#xff0c;游戏等&#xff0c;但本质是提供连通性和共享这两个功能。 连通性&#xff1a;计算机网络使上网用户之间可以交换信息&#xff0c;好像这些用户的计算机都可以彼此…

计算机网络原理IP计算总结

前言 这几天在捡计算机网络原理&#xff0c;但是发现很多计算IP的题目都不会计算了&#xff0c;然后百度&#xff08;谷歌&#xff09;了很久都找不到比较好的文章&#xff0c;也废了我差不多3-4个小时才解出来&#xff0c;所以就写一篇文章来进行总结吧&#xff01; 开始 开…

计算机网络原理的思维导图汇总

前言 从1月23日到3月5日&#xff0c; 前两个学习阶段&#xff0c;到今天基本结束。下面是小编进行总结归纳的所有思维导图&#xff0c;请欣赏&#xff1a; 第一阶段导图 第二阶段导图 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 小结 在上周周五&#x…

【自考】-计算机网络原理

新一波的自考学习又开始了&#xff0c;今天小咸儿来给大家分享一下自己对于计算机网络原理的学习&#xff1b; 首先先献上自己的一张思维导图&#xff1a; 这张导图首先描述了小咸儿对于计算机网络原理的整体认知&#xff0c;欢迎大家能够一起交流&#xff01; 对于计算机网络原…

转载-计算机网络原理

计算机信息管理专业课程 最新自考笔记 : https://github.com/Eished/self-study-exam_notes 计算机网络 国家精品课 课程地址&#xff1a;https://www.icourse163.org/course/HIT-154005 讲师&#xff1a;李全龙、聂兰顺 课件整合补充&#xff1a;Eished 视频总时长&#xff1a…

计算机网络原理 课后题1

第一章 &#xff1a;https://blog.csdn.net/weixin_42835409/article/details/107481832 第二章&#xff1a; https://blog.csdn.net/weixin_42835409/article/details/107486191 第三章&#xff1a; https://blog.csdn.net/weixin_42835409/article/details/107494509 第四…

自考 《计算机网络原理04741》真题解析

计算机网络原理真题解析 一 2019年10月全国卷1.试题2.答案3.解析 二 2019年04月全国卷1.试题 一 2019年10月全国卷 1.试题 2.答案 3.解析 1.比较多见于网络核心&#xff0c;广域网的网络拓扑结构是网状拓扑结构 2.大规模现代计算机网络结构中包括网络边缘&#xff0c;接入网络…

计算机网络原理系列学习笔记(七)——网络安全

前言 网课学习的视频来源&#xff1a;b站《自考04741 计算机网络原理》 本章知识结构 网络安全概述数据加密消息完整性与数字签名身份认证密钥分发中心与证书认证防火墙与入侵检测系统网络安全协议 网络安全概述 一、基本概念 网络安全通信所需要的基本属性: 机密性;消息…

计算机网络原理-计算题汇总

第一章概述 关于时延的计算 提高数据的发送速率只是减少了数据的发送时延 发送 2. 发送时延&#xff1a;从开始发送到结束发送。数据帧长度/发送速率传播时延&#xff1a;从开始传播到结束传播。信道长度/电磁波在信道上的传输速率 0.12 2.510^-5* 第二章物理层 &#x…

计算机网络原理综合实验

计算机网络原理实验 一、实验拓扑图 二、实验具体要求 1、根据以上拓扑划分VLAN,严格按照标明IP地址(除路由器与路由器连接段IP 地址按要求更换外)以及设备名称配置(否则不给分),实现全网的连通。 2、S5700划分两个VLAN,VLAN 20、 VLAN 30,其中G0/0/2–5属于VLAN20…

计算机网络原理(04741)课后习题答案

第一章 计算机网络概述 1.什么是计算机网络&#xff1f;(大纲考点)P22 计算机网络是互联的、自治的计算机的集合。 2 网络协议的三要素是什么&#xff1f;每个要素的含义什么&#xff1f;(大纲考点)P23 语法&#xff1a;即实体之间交换信息格式与结构&#xff0c;或者定义之间…

计算机网络原理(04741)第1章:计算机网络概述

目录 大纲考点1.计算机网络基本概念与网络结构计算机网络的概念【识记】&#xff08;重点&#xff09;网络协议的概念【识记】计算机网络的分类【识记】计算机网络的结构【识记】计算机网络的的功能与作用【领会】协议的三要素【领会】 2.数据交换技术与计算机网络性能指标数据…

计算机网络原理公式,计算机网络原理公式及计算题

计算机网络原理公式及计算题 (25页) 本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01; 11.90 积分 &#xfeff; 计算机网络原理公式及计算题第三章物理层公式一:数据传输速率的定义和计算每秒能传输的…

计算机网络基本原理

一、网络在计算机中起到的作用&#xff1a; 1、网络的发展&#xff1a; 独立模式: 计算机之间相互独立; 网络互联: 多台计算机连接在一起, 完成数据共享; 局域网LAN&#xff08;Local Area Network&#xff09;: 计算机数量更多了, 通过交换机和路由器连接在一起&#xff1b;…

【前端基础】1.计算机网络原理

重点掌握TCP/IP体系结构&#xff0c;理解自顶而下的计算机网络的分层设计思路视频链接 一&#xff0c;计算机网络概述 1.1 计算机网络基本概念 1.定义&#xff1a;计算机网络是互联的&#xff0c;自治的计算机的集合。 2.协议&#xff08;规定或约定&#xff09;三要素&…