分类:
2009-06-03 15:34:53
/**
* @descrition
* 此类为PHP+MYSQL的分页显示类,此类是通过自己先前写的分页函数修改而来,本类继承了当前
* 分页显示的绝大部分功能,并且对这么功能可以筛选,选择自己所需的功能,本类提供的功能有:
* 基本翻页按扭(可对按扭自行设计)、分页统计功能(对当前页的数据进行统计,使用户更加一目
* 了然)、跳转功能(这里我们提供了两种跳转方式,可以通过设置相关参数进而来选择自己所需要
* 的跳转方式,这两种跳转方式为:下拉式菜单跳转文本输入框跳转,可以通过设置id为JumpSele
* ct的元素的样式来改变跳转框的界面)、对跳转的页号,提供了加密功能,这也是可以根据相关的
* 参数设置来定制的.
* @Author: hqlong
* @CreatTime: 2006-04-06
* @UpdateTime-1: 2006-07-26
* @UpdateTime-1: 2006-11-07
* @LastUpdateTime: 2007-1-21
* @CopyRight: hqlong
* @Introduce:
* 1. 首先实例化这个类($sql:sql查询语句,如果规定了limit,则每页显示数以limit后的数目
* 为准,如果末给定,刚采用默认显示条数,$CycNum:循环显示的页号数,缺省显示$CycNum*2
* 条,此参数可以缺少,该参数的所有功能得要在$IsDisNum设为true时才有效。
* $page = new ($sql,$CycNum);
* 2. 调用分页函数,并返回经格式化后的sql语句,$Sortid:排序ID,整个显示都是依$Sortid来
* 进行排序的,$IsEncode:是否对页号加密,该参数可以省略,缺省时不加密该,该参数值为
* bool型,取值范围true,false。$IsNeedStat:是否显示统状况,可省略,缺省时不显示,
* 取值范围true、false,$SortMethod为排序方式,取值范围up or down,up为升序, down
* 为降序,如果不提供,只默认为down
* $sql = $page->StartPage($Sortid,$IsEncode = false,$IsNeedStat = false,
* $SortMethod = "down");
* 3. 接下来就是执行$sql,和平时查询数据的操作一样
* $result = mysql_query($sql)
* while($arr = mysql_fetch_array($result)){
* echo $arr[0];//这里打印输入
× }
* 4. 显示翻页按扭,和自己定制的一种功能 $ButtomArray:翻页按扭定置数组,定置普通按扭的
* 形式如 $ButtomArray = array("首页","上页","下页","末页"),这里是一个数组,而且
* 数组元素个素为四,如果不按此规定设置,一切设置将视为无效,显示将按程序默认方式显示
* $JumpType:定制跳转框,取值范围为select、text、none,其中select为下拉菜单显示框
* ,text文本输入框,none不定制任何跳转框,此处注意,当设置成text时,不能对页号进行加
* 密,此参数可省略,缺省状况下不显示任何跳转框,$IsDisNum:是否显示循环页号数,取值范
* 围为true,false,此参数可以省略,缺省状况下为false,即,不显示循环页号.
* $page->EndPage($ButtonArray,$JumpType = "none",$IsDisNum = false)
* 5. 如果对程序提供的统计显示位置感到不满意,可以通过调用$page->PageStat()来得到统计
* 状态,此返值字符串,即可以把这些统计文字放在你想放的任何地方
* @Example:
* $sql = "select iBookId,vBookName from xx_book limit 0,10";
* $page = new Page($sql);
* //StartPage($Sortid,$IsEncode = false,$IsNeedStat = false,$SortMethod = "down")
* $sql = $page->StartPage("iBookId",false,true,"down");
* $result = mysql_query($sql);
* while($arr = mysql_fetch_array($result)){
* echo $arr[1]."
";
* }
* $ButtonArray = array("首页","上页","下页","末页");
* //可单独显示
* //echo "
".$page->PageStat()."";
* echo $page->EndPage($ButtonArray,'text',true);
*
*/
class Page{
/**
* @description
* 每页记录数,如果未给定,则默认显示数为 10 条
* @var int
*/
private $PageSize = 10;
/**
*
* @description
* 总页数
* @var int
*/
private $TotalPage;
/**
* @description
* 总记录数
* @var int
*/
private $RecordNum;
/**
* @description
* 记录总数
* @var int
*/
private $NowPage;
/**
* @description
* 执行的sql语句
* @var int
*/
private $QueryString;
/**
* @description
* 地址栏中的页数是否加密
* 默认不加密
* @var string
*/
private $IsEncode = false;
/**
*
* @description 是否需要显示当前显示状态
* @var unknown_type
*/
private $IsNeedStat;
/**
* ******************************************************
* @description 循环显示页号数
* 默认显示数 10 条
* @var int
*/
private $CycNum = 5;
/**
*
* @description 析构函数,该分页类创建对象时,自动调用
* 对sql语句进行判断,获取文章每页显示数
* @param string $sql
*/
public function __construct($sql,$CycNum = 5){"
.$this->PageStat()."";