<?
php
require_once ( " sys_info.php " ); // 包含环境变量类
/*
文件名:ClassDataGrid.php
类名:数据分页显示类 ClassDataGrid
作者:感染源
时间:2007-1-4
*/
class ClassDataGrid
{
// 属性
var $max_line ; // 每页显示的最多行数
var $begin_record ; // 开始记录号,即读取的第一行ID号
var $total_records ; // 数据表中所有记录的总数
var $current_records ; // 当前页的记录总数
var $result ; // 查询读取的结果
var $total_pages ; // 总页数
var $current_page ; // 当前页数
/*
以下私有属性用来连接数据库
*/
private $ConnId ;
private $host ;
private $pwd ;
private $user ;
private $dbname ;
// 构造函数,用以连接数据库,以及初始化开始记录ID号和最大显示行数
function __construct()
{
$this -> host = sys_info :: $HOST ;
$this -> user = sys_info :: $USER ;
$this -> pwd = sys_info :: $PWD ;
$this -> dbname = sys_info :: $DBNAME ;
$this -> max_line = sys_info :: $MAX_LINE ; // 显示最大函数
$this -> begin_record = 0 ; // 初始化首行记录号
$this -> ConnId = mysql_connect ( $this -> host , $this -> user , $this -> pwd) or die ( ' 连接数据库出错! ' . mysql_error ());
mysql_select_db ( $this -> dbname , $this -> ConnId);
} // function __construct()
//析构函数,用以释放内存和关闭数据库连接
function __destruct()
{
mysql_free_result ( $this -> result); // 释放内存
mysql_close ( $this -> ConnId); // 关闭数据库链接
} // function __destruct();
//函数__get(),PHP内置函数,获取类的属性
function __get( $property_name )
{
if ( isset ( $this -> $property_name ))
{
return ( $this -> $property_name );
}
else
{
return ( NULL );
} // if
} // function __get();
//函数__set(),PHP内置函数,给类实例对象的属性赋值
function __set( $property_name , $value )
{
$this -> $property_name = $value ;
} // function __set();
/*
函数名:read_data($sql)
形式参数:$sql,即sql查询语句
功能:根据sql查询语句从表中读取相应的记录
返回值:函数内变量$result_arr[记录号][字段名]
*/
function read_data( $sql )
{
$this -> result = mysql_query ( $sql , $this -> ConnId) or die ( ' 查询失败! ' . mysql_error ());
// 获取记录总数
$this -> total_records = mysql_num_rows ( $this -> result);
if ( $this -> total_records > 0 )
{
// 利用limit关键字获取本页所需显示的记录
$sql = $sql . " limit " . $this -> begin_record . ' , ' . $this -> max_line;
$this -> result = mysql_query ( $sql , $this -> ConnId) or die ( ' 获取数据失败! ' . mysql_error ());
// 获取当前页的记录数
$this -> current_records = mysql_num_rows ( $this -> result);
$i = 0 ;
$result_arr = array ();
while ( $row = mysql_fetch_array ( $this -> result))
{
$result_arr [ $i ++ ] = $row ;
} // while
return $result_arr ;
} // if
} // function read_data();
/*
函数名:navigate()
功能:显示首页、上页、下页、末页
*/
function navigate()
{
// 获取总页数
$this -> total_pages = ceil ( $this -> total_records / $this -> max_line);
// 获取当前页数
$this -> current_page = ceil ( $this -> begin_record / $this -> max_line) + 1 ;
// 用for循环输出阿拉伯数字分页页码
for ( $i = 0 ; $i < $this -> total_pages; $i ++ )
{
$FirstId = 0 ; // 数据库首行记录号,即ID=1
$page_record = $this -> max_line * $i + $FirstId ; // 当前页读取的起始行数ID
$page = $i + 1 ; // 显示的阿拉伯页码
if ( $page != $this -> current_page)
echo " <a href= " . $_SERVER [ ' PHP_SELF ' ] . " ?begin_record= " . $page_record . " > " . $page . " </a> " ;
else
echo " <font color=red size=6><a href= " . $_SERVER [ ' PHP_SELF ' ] . " ?begin_record= " . $page_record . " > " . $page . " </a></font> " ;
} // for
} // function navigate();
} // class ClassDataGrid;
?>
require_once ( " sys_info.php " ); // 包含环境变量类
/*
文件名:ClassDataGrid.php
类名:数据分页显示类 ClassDataGrid
作者:感染源
时间:2007-1-4
*/
class ClassDataGrid
{
// 属性
var $max_line ; // 每页显示的最多行数
var $begin_record ; // 开始记录号,即读取的第一行ID号
var $total_records ; // 数据表中所有记录的总数
var $current_records ; // 当前页的记录总数
var $result ; // 查询读取的结果
var $total_pages ; // 总页数
var $current_page ; // 当前页数
/*
以下私有属性用来连接数据库
*/
private $ConnId ;
private $host ;
private $pwd ;
private $user ;
private $dbname ;
// 构造函数,用以连接数据库,以及初始化开始记录ID号和最大显示行数
function __construct()
{
$this -> host = sys_info :: $HOST ;
$this -> user = sys_info :: $USER ;
$this -> pwd = sys_info :: $PWD ;
$this -> dbname = sys_info :: $DBNAME ;
$this -> max_line = sys_info :: $MAX_LINE ; // 显示最大函数
$this -> begin_record = 0 ; // 初始化首行记录号
$this -> ConnId = mysql_connect ( $this -> host , $this -> user , $this -> pwd) or die ( ' 连接数据库出错! ' . mysql_error ());
mysql_select_db ( $this -> dbname , $this -> ConnId);
} // function __construct()
//析构函数,用以释放内存和关闭数据库连接
function __destruct()
{
mysql_free_result ( $this -> result); // 释放内存
mysql_close ( $this -> ConnId); // 关闭数据库链接
} // function __destruct();
//函数__get(),PHP内置函数,获取类的属性
function __get( $property_name )
{
if ( isset ( $this -> $property_name ))
{
return ( $this -> $property_name );
}
else
{
return ( NULL );
} // if
} // function __get();
//函数__set(),PHP内置函数,给类实例对象的属性赋值
function __set( $property_name , $value )
{
$this -> $property_name = $value ;
} // function __set();
/*
函数名:read_data($sql)
形式参数:$sql,即sql查询语句
功能:根据sql查询语句从表中读取相应的记录
返回值:函数内变量$result_arr[记录号][字段名]
*/
function read_data( $sql )
{
$this -> result = mysql_query ( $sql , $this -> ConnId) or die ( ' 查询失败! ' . mysql_error ());
// 获取记录总数
$this -> total_records = mysql_num_rows ( $this -> result);
if ( $this -> total_records > 0 )
{
// 利用limit关键字获取本页所需显示的记录
$sql = $sql . " limit " . $this -> begin_record . ' , ' . $this -> max_line;
$this -> result = mysql_query ( $sql , $this -> ConnId) or die ( ' 获取数据失败! ' . mysql_error ());
// 获取当前页的记录数
$this -> current_records = mysql_num_rows ( $this -> result);
$i = 0 ;
$result_arr = array ();
while ( $row = mysql_fetch_array ( $this -> result))
{
$result_arr [ $i ++ ] = $row ;
} // while
return $result_arr ;
} // if
} // function read_data();
/*
函数名:navigate()
功能:显示首页、上页、下页、末页
*/
function navigate()
{
// 获取总页数
$this -> total_pages = ceil ( $this -> total_records / $this -> max_line);
// 获取当前页数
$this -> current_page = ceil ( $this -> begin_record / $this -> max_line) + 1 ;
// 用for循环输出阿拉伯数字分页页码
for ( $i = 0 ; $i < $this -> total_pages; $i ++ )
{
$FirstId = 0 ; // 数据库首行记录号,即ID=1
$page_record = $this -> max_line * $i + $FirstId ; // 当前页读取的起始行数ID
$page = $i + 1 ; // 显示的阿拉伯页码
if ( $page != $this -> current_page)
echo " <a href= " . $_SERVER [ ' PHP_SELF ' ] . " ?begin_record= " . $page_record . " > " . $page . " </a> " ;
else
echo " <font color=red size=6><a href= " . $_SERVER [ ' PHP_SELF ' ] . " ?begin_record= " . $page_record . " > " . $page . " </a></font> " ;
} // for
} // function navigate();
} // class ClassDataGrid;
?>