PHP分页导航显示类

 

<? 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;
?>  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值