PHP分页显示制作详解

1、前言

分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用php编写。

2、原理

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:

每页多少条记录($PageSize)?

当前是第几页($CurrentPageID)?

现在只要再给我一个结果集,我就可以显示某段特定的结果出来。

至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。

以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。

前10条记录:select * from table limit 0,10

第11至20条记录:select * from table limit 10,10

第21至30条记录:select * from table limit 20,10

……

这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:

select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize

拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。以下我将用具体代码加以说明。

时间: 2024-09-13 06:28:22

PHP分页显示制作详解的相关文章

ThinkPHP3.2.3实现分页的方法详解_php实例

本文实例讲述了ThinkPHP3.2.3实现分页的方法.分享给大家供大家参考,具体如下: 首先要搞清楚的就是ThinkPHP3.2.3的分页类已经被移到了Think\Page.class.php,这是跟以前的版本有些不一样的,使用起来还是跟以前版本差不多,但是默认的效果不敢恭维,所以最好是自己加些样式. 我加了一些样式(不怎么好看),大家可以自行的再去改进分页样式,效果图: 在这里我有先把page的设置做成了一个函数getpage,将这个方法放到Application\Common\Common

Zend Framework分页类用法详解_php实例

本文实例讲述了Zend Framework分页类用法.分享给大家供大家参考,具体如下: 1.分页类Pagination.php,最好是把这个类放在Zend目录下 class XY_Pagination { private $_navigationItemCount = 10; //导航栏显示导航总页数 private $_pageSize = null; //每页项目数 private $_align = "right"; //导航栏显示位置 private $_itemCount =

PHP和MYSQL实现分页导航思路详解

预期效果 思路 通过SQL语句 SELECT * FROM table LIMIT start end 来从MySql数据库 步骤 传入页码p: 根据页码获取数据php->mysql 显示数据+分页条 源码 github 链接 注意点 table,input,button等控件的样式不会继承body,需要重新定义如下 input,label, select,option,textarea,button,fieldset,legend,table{ font-size:18px; FONT-FAM

C/S考试系统程序制作详解

大型作业答辩:C/S考试系统程序制作详解 一.服务器程序 采用了WinSocket32的完成端口模型(I/O completion ports) WIN32多线程技术 ODBC APIS 进行数据库操作 二.客户端程序 用Win32 API函数构造主窗体和界面元素,如图一所示: 图一 程序组织结构 服务器程序详解 一.完全端口模型(I/O completion ports)是迄今为止最为复杂的一种I/O模型,假如一个程序需要管理为数众多的套接字,那么采用这种模型往往可以达到最佳的系统性能,不幸的

WPS演示倒计时制作详解之滚动条

倒计时制作详解(一)滚动条 倒计时在教学和演示中应用比较广范,制作方法各有特点,我将利用图文教程的方式,详细展示常见倒计时的几种做法,这是其中做法之一. 打开wps视频模板,在第一页第一个文本框中修改题目"倒计时",在第二个文本框中题目修改为"制作人:北方",字体微软雅黑,字号等项默认. 图- 1 在幻灯片任务窗格中,单击第一页后面,出现一条横向闪动的细线,通过按键盘上的回车键,新建一张幻灯片.在其中第一个文本框中修改题目"倒计时一",设置对齐方

YII框架中搜索分页jQuery写法详解_php实例

控制层 use frontend\models\StudUser; use yii\data\Pagination; use yii\db\Query; /** * 查询 * */ public function actionSearch() { //接值 $where=Yii::$app->request->get(); //实例化query $query=new Query(); $query->from('stud_user'); //判断 if(isset($where['sex

Android 图片存入系统相册更新显示实例详解

Android 图片存入系统相册更新显示实例详解 在开发android的过程中,我们避免不了可能会涉及到做一个自定义相册或则会去本地创建一个文件夹来存储我们需要的图片.拿相册来说,比如我们创建一个test的文件夹,拍完一张照片后存储到这个指定的test文件夹里,然后在相册里面显示出来,就像微信的效果一样.拍完即可立即显示.但是,在实际开发过程中我们保存完一张图片后并不能立即更新显示出来这个图片,需要我们重启手机才能在系统相册中显示出来. 这里先提供一个插入系统图库的方法: MediaStore.

教程/dreamweaver/提高 表格妙用-线框制作详解(5)

dreamweaver|教程|详解 隔距边框的制作 "隔距边框"在网页中主要用来排列各个栏目或频道的项目列表用的,为了方便大家理解,笔者先把制作完成以后的效果图给大家展示下,如下: 下面是相应的制作过程,(以制作三框隔距为例说明) 首先在网页中插入一个1行3列的表格对象,在插入过程中直接把"Border"设定为0,"CellSpace"设定为2,"CellPad"设定为1,如图 注意:在这里进行设置,同属性板中是完全等效的.

教程/dreamweaver/提高 表格妙用-线框制作详解(3)

dreamweaver|教程|详解 细线边框的制作 细线边框是网页中定位区分内容常用的一种方法,配合特定图片的使用,往往能够达到不错的效果,那么如何制作细线边框呢? 大家都知道,所谓细线边框,大体外观上就是一个简单的1行1列表格,那么我们直接把表格对象的Border值设定为1不就可以了吗?请看下面的制作效果: 同样在网页中指定位置插入一个单行单列的表格,用鼠标单击表格外框的任何一个部位以选中它,在属性板中将"Border"值设定为1,也可以同时将另外的"CellPad&quo