日期:2013-04-19 浏览次数:20595 次
<?
/*
------------------------------------------------------------------------------------
类名:Lwgpagenum
说明:PHP+MySQL分页类
作者:龙卫国
网络user:lwg888
邮箱:lwg888@163.com
使用、修改、传播请保留作者信息
------------------------------------------------------------------------------------
*/
require_once(dirname(__FILE__)."/Lwgdb.inc.php");
//Lwgdb.inc.php是数据库连接与sql语句执行类
class Lwgpageturn {
//----------可以设置值的变量----------------------------------------
var $maxnum;//每页显示数
var $maxnum_max_size=100; //每页最多显示数,用来规定$maxnum不能超过$maxnum_max_size
var $sql;//sql语句
var $navchar=array('[|<<]','[<]','[>]','[>>|]','[<<]','[>>]');
//导航条的显示字符,值可以自定义,如一个img标签
//$navchar[0]表示第一页,$navchar[1]表示前一页,$navchar[2]表示后一页,$navchar[3]表示最后页,$navchar[4]表示前n页,$navchar[5]表示后n页
var $key;//如果一个页面中有多个分页时作为区别标记
var $debug=true;//是否显示调试信息
//----------用来获取值的变量---------------------------------------
var $totalnum;//总记录数
var $totalpage;//总页数
var $startnum;//本页的第一条在总数中的序数
var $endnum;//本页的最后一条在总数中的序数
var $pagenum;//本页在总页数中的序数
var $field;//结果记录的集合
var $id;//每条记录的序号
var $linkhead;//链接指定的url及要传递的相关参数
var $err;//记录最后一条错误信息
//构造函数。
//参数$maxnum用来指定每页显示多少条记录,如果不指定$maxnum,表示全部显示而不用分页
//如果同一个页面中有两个以上的分页,参数$key作为区分标记,否则不用指定
//使用方法:
// $obj=new Lwgpagenum('10');
//或: $obj=new Lwgpagenum();
// $obj->maxnum="10";
// $obj->key="1";
function Lwgpageturn($maxnum="",$maxnum_max_size='',$key=""){
$this->maxnum=$maxnum;
if ($maxnum_max_size!="")$this->maxnum_max_size=$maxnum_max_size;
$this->key=$key;
}
//通过run方法运行sql并取得相关信息
//$sql参数为有效的sql语句。可以通过$obj->sql=""来指定
//$db参数为数据库连接ID
//使用方法:
//$sql="select * from table";
//$db=mysql_connect('host','user','pass');
//$obj->run($sql,$db);
//或:
//$obj->sql="select * from table";
//$obj->run();
function run($sql='',$db=''){
if ($sql!="")$this->sql=$sql;
if ($this->sql=="") return $this->output("错误:未给出sql查询语句!");
if ($this->maxnum<0 || $this->maxnum_max_size<0) return $this->output("错误:maxnum、maxnum_max_size都不能小于0!");
if ($db=="")$db=new Lwgdb();
//如果没有指定参数$db,则用Lwgdb类与数据库建立连接
if (empty($this-