专栏首页老码农的一亩三分地《细说PHP》第四版 样章 第18章 数据库抽象层PDO 10

《细说PHP》第四版 样章 第18章 数据库抽象层PDO 10

版权声明:本文为博主原创文章,遵循 A 版权协议,转载请附上原CC 4.0 BY-S文出处链接和本声明。

本文链接:https://blog.csdn.net/ITXDL123/article/details/100130451

18.8 设计完美分页类

数据记录列表几乎出现在Web项目的每个模块中,假设一张表中有十几万条记录,我们不可能一次全都显示出来,当然也不能仅显示几十条。为了解决这样的矛盾,通常在读取时设置以分页的形式显示数据,这样阅读起来既方便又美观。分页的设计不仅可以让用户读取表中的所有数据,而且每次只从数据库服务器中读取一点点数据,既能提高数据库的反应速度,又能提高页面加载速度,所以说,分页程序是Web开发的一个重要组成部分。本节完美分页类的设计,目的就是让读者能通过最简单的方法来使用功能强大的分页程序。对于基础薄弱的读者,只要求会使用本类即可;而对一些喜欢挑战的读者,可以尝试去读懂它,并开发一个属于自己的分页类。

18.8.1 需求分析

要求自定义分页类,在达到使用简便的前提下,又可以完成以下几项功能:

Ø 提供比较全面的分页信息(包括记录总数、当前页显示条数和记录的起始到结束的位置、总页数和当前页码,以及首页、上一页、下一页和尾页的设置,还有通过页码列表和指定跳转的页面设置)。

Ø 可以对分页的输出信息内容进行设置。

Ø 可以有选择地显示分页信息,以及对显示的分页信息顺序进行调整。

Ø 可以设置在跳转至其他页的同时,能将本页的一些数据参数传递过去。

Ø 可以设置默认显示第一页还是最后一页。

Ø 可以使用LIMIT从句来设置SQL语句,用于限制从数据库获取的记录条数。

说明:需要考虑分页时的一些特殊情况,例如,没有数据记录时、只有一页数据时、当前页为第一页时,以及当前页为最后一页时等。

18.8.2 程序设计

设计一个分页程序至少需要4个重要条件:

Ø 数据表中的总记录数。

Ø 每页显示的记录条数。

Ø 为分页程序提供当前页。

Ø 访问其他页面请求的URL。

根据分页程序的需求,我们可以为分页类声明一个构造方法和两个可见的成员方法,以及两个可见的成员属性。构造方法用于为分页程序的属性提供必要的值,包括数据表的总记录数、每页显示的记录条数、页面跳转的参数传递,以及默认页面显示。其中,当前页码可以直接在程序中通过$_GET获取,不用手动传递。并且访问其他页面请求的URL也可以通过程序自动获取,也不需要手动进行传递。分页类中设计的3个可见的成员方法如表18-6所示,分页类中可见的两个成员属性如表18-7所示。

表18-6 分页类中设计的3个可见的成员方法

表18-7 分页类中可见的两个成员属性

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • android WebView拦截请求详解

    WebView的基本用法相信大多数android开发者都是会使用的,最简单的就是调用个loadUrl方法,但是记得要在清单文件中添加网络权限。我也简单了写了一个...

    用户1108631
  • PHP session反序列化漏洞总结

    每个session标签对应着一个$_SESSION键-值类型数组,数组中的东西需要存储下来,首先需要序列化。 在php中session有三种序列化的方式,分别是...

    猿哥
  • 【HTTP】客户端识别与cookie机制

    ​ 然而,大多数产品都希望提供一个类“免责声明”的文档,然后主动管理该DNT。所以我们只能借助其他方式(这里常用的方式是第三方Cookie,见文档Co...

    奋飛
  • 一键查询物流信息

    百度上搜到一个'快递100'的网站,可以查询货物的物流信息,所以选择了它作为这次的小白鼠

    佛系编程人
  • Leetcode力扣算法题目——四数的和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    benny
  • 电影知识图谱问答(一)|爬取豆瓣电影与书籍详细信息

    最近在做关于知识图谱方面的实验,需要一些数据,于是爬取了豆瓣上关于电影和书籍的信息。两天时间内共爬取20W+条数据,包括电影信息、电影演员信息、书籍信息、书籍作...

    小一
  • Spring入门:Resource

    然而,用 Java 的 File、URL 访问这些底层资源的步骤过于繁琐。Spring 为资源访问提供了一个 Resource 接口,该接口提供了更强的资源访问...

    WEBJ2EE
  • Microsoft REST API指南

    经过3个月的碎片时间的翻译和校验,由长沙.NET技术社区翻译的英文原文文档《Microsoft REST API指南 》已经翻译完成,现刊载前十一章如下...

    Edison.Ma
  • 爬取高清无版权美图

    做公众号,总是会需要使用一些图片做封面或背景。我的公众号的图片有两种来源:一是通过创可贴自己动手修改下就可以用了,还一种就是在网上下载图片。

    罗罗攀
  • 广州地震了!地震到底离我们有多近,Python 爬虫带你了解

    这周看到了两个地震新闻,一个是广东广州增城的,另一个是台湾的,因为本人身在广州,而且对于广佛这边的来说地震其实挺突然的对于我们来说,基本在广佛这边很少出现地震,...

    小Gy

扫码关注云+社区

领取腾讯云代金券