<?php
/*********************************************
*类名:myDataGridClass
*功能:分页显示数据库中的数据
*********************************************/
class myDataGridClass
{
//属性
var $sql; //sql查询语句
var $max_line; //每页显示的记录数
var $begin_record; //要显示记录的首行序号
var $total_records; //要显示的记录总数
var $current_records; //本页读取的记录数
var $result; //存放读取出来的结果
var $total_pages; //总页数
var $current_pages; //当前页数
var $arr_page_query; //数组,包含分页显示需要的参数
//方法
/******************************************************
*构造函数:myDataGridClass()
*参数:$pmax_line,每页显示的最多行数
******************************************************/
function myDataGridClass($pmax_line)
{
$this->max_line=$pmax_line;
$this->begin_record=0;
}
function _get($property_name)
{
if (isset($this->$property_name))
{
return $this->$property_name;
}
else
{
return null;
}
}
function _set($property_name,$value)
{
$this->$property_name=$value;
}
/*****************************************************
*函数名:read_data()
*功能:根据SQL语句从数据库中读取记录
*返回值:数组result[记录号][字段名]
*****************************************************/
function read_data()
{
$psql=$this->$sql;
//查询数据库,数据库链接等信息在类外实现
$result=mysql_query($psql) or die (mysql_error());
$this->$total_records=mysql_num_rows($result);
//获取本页所要显示的记录数
if ($this->total_records>0)
{
$psql=$psql."limit".$this->begin_record.","$this->max_line;
$result=mysql_query($psql) or die (mysql_error());
$this->current_records=mysql_num_rows($result);
//将结果放在result数组中
$i=0;
while ($row=mysql_fetch_array($result))
{
$this->result[$i]=$row;
$i++;
}
}
}
/****************************************************
*函数名:navigate()
*功能:显示导航链接
****************************************************/
function navigate()
{
//获取总页数,当前页信息
$this->total_pages=$this->total_records%$this->max_line?$this->total_records/$this->max_line:$this->total_records/$this->max_line+1;
$this->current_page=$this->begin_record/$this->max_line+1;
echo "<div align=center>";
echo "<font color=red size='4'>第".$this->current_page."页/共".$this->total_pages."页</font>";
echo " ";
//获取要导航到分页的初始记录号
$first=0;
$next=$this->begin_record+$this->max_line;
$prec=$this->begin_record_$this->max_line;
$last=($this->total_records-1)*$this->max_line;
//显示导航链接
if ($this->begin_record>=$this->max_line)
echo "<a href=".$SERVER['PHP_SELF']."?begin_record=".$frist.">首页</a>|";
if ($prec>=0)
echo "<a href=".$SERVER['PHP_SELF']."?begin_record=".$prec.">上一页</a>|";
if ($next<$this->total_records)
echo "<a href=".$SERVER['PHP_SELF']."?begin_record=".$next.">下一页</a>|";
if ($this->total_pages!=0 && $this->current_page < $this->total_pages)
echo "<a href=".$SERVER['PHP_SELF']."?begin_record=".$last.">末页</a>|";
}
}
?>