浅谈PHP第五弹---分页之九阳神功_PHP教程
上文中http://www.BkJia.com/kf/201204/128413.html我给大家讲了递归函数的运行机制及使用,不知道大家是否明白,若不明白可以在下面跟帖提问,我会随时帮助大家解答。
这两天有很多同学在提问问题的时候在分页上面除了问题,那么今天我来给大家详细说下分页技术的应用:
我们经常会在一些web应用中看到漂亮的分页,
点击下一页就会显示后一页的内容,这样是不是页面美观不少呢。
好,看完本文的讲解相信同学们也能写出漂亮的分页来
现在我有一张数据表,表名为mytable,有以下数据:
id name pass age sex
1 狗蛋 wrw7921sqa5eb72c92a549dd5avfr112 20 1
2 高富帅 vdf79218965eb72c92a549dd5a334534 20 0
3 捷哥 gbj792saa65eb72c92a549dd5avfd321 22 1
4 兄弟连 45379218965eb72ccdd549dd5a330342 24 1
5 lampbrothers cdc79218965eb72c92a549dd5vsfdwsx 24 1
6 lamp ret79218965eb72c92a549dd5a33bgyt 25 0
7 php 123qwe18965eb72c92a549dd5a330875 26 1
8 mysql 76e79218965eb72c92a549ddvfdd0dsa 28 0
9 apache 54ebnm18965eb72c92a549dd5a330cxz 30 1
首先,先来做一个分页链接
echo "上一页
";
echo "下一页
";
echo "共计条";
?>
我们思考一下,点击上一页,当前页码减一,并且会显示上一页的数据
假设,当前页码我们用一个变量$page来控制,那么上一页是不是就应该是$page-1
下一页的页码是$page+1
所以我们上面的链接应该改为:
echo "上一页
";
echo "下一页
";
?>
这样大家就应该很明白了,怎么去传上一页和下一页的页码
但是在实际的开发中,一个web软件不可能让用户来传页码,用户访问页面只会访问到index.php
所以我们会对这种情况做相关处理:
$page = !empty($_GET['page'])?$_GET['page']:1
?>
此时我们的$page如果没有给定,即$_GET['page']为空,我们直接给$page赋值为1
下一步,我们来把数据分开显示,也就是说第一页只显示第一页的数据,第二页只显示第二页的数据........第N页只显示第N页的数据
这样的话,我们需要对sql语句进行操作,要想分页显示数据,我们就用到了sql语句的limit子句
好,那我们想,如果每页数据只显示5条记录,sql语句应该什么样子的?
那么我们的
第一页:
显示的第一条到第五条的数据是不是就应该是“limit 0,5”;
第二页:
显示的第六条到第十条的数据就应该是“limit 5,5”;
第三页:
显示的第十一条到第十五条的数据就应该是“limit 10,5”;
..............
我们看一个规律,
仔细观察,我们的第n页是不是就应该是
limit (n-1)*每页显示的条数,每页显示的条数
也就是说,我们需要的数据有当前页码以及每页显示条数
好,刚刚我们说了,当前页码我们可以通过$_GET['page']来获取,那么每页显示条数我们可以用一个变量来定义,熟练的同学可以定义一个常量,把它放到配置文件中去,
这里我们使用变量来定义,设定页大小为5
$page = $_GET['page'];
$pagesize = 5;
那组装的sql语句的limit子句就应该是“ limit ($page-1)*$pagesize,$pagesize”
此时,我们已经能够对数据进行分页处理了,
但是如果想获取总共多少页,我们还需要从数据库中去统计总计多少条记录
$sql = "select count(*) from mytable";
$result = mysql_query($sql);
我们可以把执行的结果使用mysql_result()函数取出。
$count = mysql_result($result,0);
好,那当前我们的记录总数就为$count,
现在我们的总数据条数为9条,每页显示5条,大家想想,我们的总页数是不是应该是2页,也就是ceil(9/5)=2
那总页数计算公式为ceil($count/$pagesize),
好,我们需要的所有数据都已经得到,最终组装成sql语句,并显示出来,应该为:
//设置每页显示多少条记录
$pagesize = 5;
//获取当前页码
$page = !empty($_GET['page'])?$_GET['page']:1;
//总共记录条数
$sql = "select count(*) from mytable";
$result = mysql_query($sql);
$count = mysql_result($result,0);
//总共有多少页
$page_count = ceil($count/$pagesize);
//判断当前给定页码是否越界
if($page
$page=1;
}elseif($page>$page_count){
$page=$page_count;
}
//开始组装sql语句
$sql = "select id,name,age,sex from mytable limit ".($page-1)*$pagesize.','.$pagesize;
//发送sql语句
$result = mysql_query($sql);
//输出表格
echo "
用户名 | 年龄 | 性别 | ";
---|---|---|
".$row['name']." | ";".$row['age']." | ";".$sex[$row['sex']]." | ";
//加分页显示连接
$up = (($page-1) $down = (($page+1)>$page_count)?$page_count:($page+1);
echo "上一页 ";
echo "下一页 ";
echo "共计".$page_count."页 ";
echo "当前第".$page."页 ";
echo "共计".$count."条记录";
?>
好,这样我们就把分页功能加上了,怎么样,是不是很简单。
我来总结下分页的具体步骤:
第一步:设置页大小(每页显示多少条)
第二步:获取当前页码
第三步:获取总记录条数
第四步:获取总页数
第五步:判断当前给定页码是否越界
第六步:组装sql语句
第七步:发送sql语句给mysql服务器
第八步:遍历结果集输出
第九步:加分页链接
只要记住以上捷哥分页九阳神功的武林秘籍,相信同学们一定能够悠然驰骋PHP的武林杀场
作者 zdrjlamp

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题











PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。
