当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机四级指导:用PHP+MYSQL进行分页的详细说明
发布时间:2010/3/24 19:36:58 来源:城市学习网 编辑:admin

  用PHP+MYSQL进行分页的详细说明
  分页显示详解1、前言分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问 ...
  分页显示详解
  1、前言
  分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用php编写。
  2、原理
  所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:
  每页多少条记录($PageSize)?
  当前是第几页($CurrentPageID)?
  现在只要再给我一个结果集,我就可以显示某段特定的结果出来。
  至于其他的参数,比如:($PreviousPageID)、($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。
  以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:selectfrom table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。
  前10条记录:selectfrom table limit 0,10
  第11至20条记录:selectfrom table limit 10,10
  第21至30条记录:selectfrom table limit 20,10
  ……
  这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:
  selectfrom table limit $PageSize, $PageSize
  拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。以下我将用具体代码加以说明。
  3、简单代码
  请详细阅读以下代码,自己调试运行一次,最好把它修改一次,加上自己的功能,比如搜索等等。
  ?php
  // 建立数据库连接
  $link = mysql_connect
  or die);
  // 获取当前页数
  if )
  else
  // 每页数量
  $PageSize = 10;
  // 获取总数据量
  $sql = "select count as amount from table";
  $result = mysql_query;
  $row = mysql_fetch_row;
  $amount = $row[‘amount‘];
  // 记算总共有多少页
  if //如果总数据量小于$PageSize,那么只有一页
  ifelse
  }
  else
  // 翻页链接
  $page_string = ‘‘;
  if
  else
  if )
  else
  // 获取数据,以二维数组格式返回结果
  if
  }else
  // 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果
  ?
  4、OO风格代码
  以下代码中的数据库连接是使用的pear db类进行处理
  ?php
  // FileName: Pager.class.php
  // 分页类,这个类仅仅用于处理数据结构,不负责处理显示的工作
  Class Pager
  // 总页数
  if
  if
  else
  }
  else
  switch
  if
  if
  }
  return true;
  }
  /
  返回结果集的数据库连接
  在结果集比较大的时候可以直接使用这个方法获得数据库连接,然后在类之外遍历,这样开销较小
  如果结果集不是很大,可以直接使用getPageData的方式获取二维数组格式的结果
  getPageData方法也是调用本方法来获取结果的
  /

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved