经典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从数据库内获取数据并显示了。以下我将用具体代码加以说明。

3、简单代码

请详细阅读以下代码,自己调试运行一次,最好把它修改一次,加上自己的功能,比如搜索等等。

// 翻页链接

$page_string = '';

if( $page == 1 ){

$page_string .= '第一页|上一页|';

}

else{

$page_string .= '|上一页|';

}

if( ($page == $page_count) || ($page_count == 0) ){

$page_string .= '下一页|尾页';

}

else{

$page_string .= '下一页|尾页';

}

// 获取数据,以二维数组格式返回结果

if( $amount ){

$sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size";

$result = mysql_query($sql);

while ( $row = mysql_fetch_row($result) ){

$rowset[] = $row;

}

}else{

$rowset = array();

}

// 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果

?>

4、oo风格代码

以下代码中的数据库连接是使用的pear db类进行处理

首页 1 2 3

末页

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php分页3 1,经典php分页代码与分页原理(1/3)相关推荐

  1. php分页类代码带分页样式效果(转)

    php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...

  2. mysql分页取数每一页生成xml_让MyBatis Generator产生的代码支持分页

    本文提供一种方法,让MyBatis Generator产生的代码支持分页,  适用于MySQL. 分析 如果要获取分页信息,使用MySQL语句,我们需要怎么做呢? select * from t_us ...

  3. 分页功能的实现代码 与 分页查询

    数据库sql语句 分页查询: 1. SELECT (列名) FROM (表名) LIMIT (当前页数 - 1)* 每页几条数据,每页几条数据 列如:是第一页 每显示 5条数据 查询的表名 japan ...

  4. 经典好用的list分页方法

    大多数开发人员都知道,在Web系统中,分页是一种常见的功能,我之前写的分页方法都比较麻烦,移植性也不高,这就很不乐观了. 很多时候各种条件查询完了又做一些其他的业务处理,然后就导致分页不好用了. 所以 ...

  5. php分页代码简单实现原理,php分页类之PHP分页原理+代码实现

    首先了解SQL语句中的limit用法 SELECT * FROM table -- limit 开始位置 , 操作条数 (其中开始位置是从0开始的) 例子: 取前20条记录:SELECT * FROM ...

  6. php分页上一页下一页判断,分页(上一页,下一页)

    实现功能:出现首页,下一页,上一页,尾页 $pagesize=2;//分页,已知每页显示几条记录,$pagesize //我们通过在地址栏传递page参数的形式获得当前是第几页,?page=1就是第一 ...

  7. php ajax mysql 分页查询_PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)

    1.首先做主页面Ajax_pag.php 代码如下: Ajax做分页 .header{ margin-top: 20px; } 关键字: 地区代号地区名称父级代号 2.然后做分页查询JS页面Ajax_ ...

  8. phpcmsV9 自定义分页函数与调用 - 不影响后台SQL分页

    phpcmsV9 自定义分页函数与调用 - 不影响后台SQL分页 一.前言: 这里主要有二处需要修改: 文件1. www\phpcms\libs\functions\global.func.php 文 ...

  9. 微软企业库mysql分页存储_使用微软企业库,非分页sql语句得到分页数据方法

    最近使用微软企业库,在做分页绑定的时候发现好象还没有多少通用的方法.为了灵活和换数据库,我不能使用存储过程.为了开发速度最快.我就是用datagrid绑定了. 以前长用的 DataAdapter.Fi ...

最新文章

  1. 进阶学习(4.2) JVM 常用配置参数, GC 参数
  2. c语言容斥原理,容斥原理 | 易学教程
  3. 洛谷P1462-通往奥格玛瑞的路【日常图论,二分查找,最短路,SPAF】
  4. python中出现iterator should return strings, not bytes怎么解决
  5. lisp语言与python_5种语言混合编程:C++、JS、python、Lisp、汇编
  6. Maven打包时报Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war解决方案
  7. 京东店铺怎么运营 掌握这些京东运营知识很有必要!
  8. C++函数CreateProcess隐藏窗口
  9. QPS、TPS、PV、UV、GMV、IP、RPS的概念解释
  10. Android开发自定义相机,自定义拍照界面
  11. 中龍鸿业分享理财产品净值1是什么意思?依据净值怎样算预期收益
  12. 【数据中台】数据质量原因分析
  13. 【正点原子FPGA连载】第七章Verilog HDL语法 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  14. 如何使用云信通短信发送生日祝福短信(自动发送哦)
  15. 1127 判断完全数
  16. python八枚硬币问题
  17. Windows 8的Metro界面
  18. 兰大机试复试真题答案c语言版
  19. 训练神经网络如何确定batch大小?
  20. 电子束与材料相互作用Matlab代码

热门文章

  1. 实验2-4-2 生成3的乘方表 (C语言)
  2. 类似excel实现文本中带数字的值进行规律填充[前提:字符串中数字对数相等](-)
  3. linux系统shell脚本编程,Linux系统shell脚本编程(一)
  4. python统计字典里面value出现的次数_python 统计list中各个元素出现的次数的几种方法...
  5. cdn加载插件和npm安装的差别_免费、快速且可靠的开源CDN-jsDelivr
  6. python file tell_Python3 File tell() 方法
  7. ltrim函数_数据分析常用Excel函数
  8. 构建大型 Mobx 应用的几个建议
  9. [译] 使用 iPhone X 与 Maya 实现快速面部捕捉
  10. highlightjs 详解