分页类文件一
上一篇 / 下一篇 2007-02-27 12:48:58 / 个人分类:代码
<?php
/****
//funcation Name : 分页类
//Write Time:2005-5-14
//Author : 释然
//Descrīption :
//SQL函数有两个参数,分别是SQL语句和每页要显示的条数,第三个参数为可选参数为排序的条件
//本类无论是用POST方法还是用GET方法传递参数都可以,最终都将转化为GET方法传递参数
//本类需要SQL类支持
*/
class Page
{
var $sql;
var $pagesize;
var $sortcondition;
var $totalPages;
var $page;
var $prePage;
var $nextPage;
var $post_query;
function Page(&$sql,$sortc,$pagesize)
{
global $db;
$this->sql = &$sql;
$this->pagesize= $pagesize;
$this->sortcondition= $sortcondition;
$this->page = $_GET["page"];
///取出符合条件的资源总数,并测试连接是否有效
if(!mysql_ping())
{
echo "<font size=3 color = red>MYSQL连接失效,请重新连接!</font>";
exit;
}
$result = &$db->query($this->sql);
$totalnum = &$db->num_rows($result);
if($totalnum<1)
{
echo "不存在符合条件的信息!";
exit;
}
if(empty($this->page)){$this->page = 0;}
$this->totalPages = ceil($totalnum/$this->pagesize);
$end = ($this->totalPages-1)*$this->pagesize;
$this->prePage = ($this->page ==0?0:$this->page-$this->pagesize);
$this->nextPage= ($this->page>=$end?$end:$this->page+$this->pagesize);
if($this->sortcondition)
$this->sql .= " order by ".$this->sortcondition." DESC ";
$this->sql .= " limit ".$this->page.",".$this->pagesize;
//echo $this->sql;
}
function PageSql()
{
return $this->sql;
}
function TotalPage()
{
}
function ShowPageOne()
{
$url=$this->UrlAnalyze();
$curr = ($this->page+$this->pagesize)/$this->pagesize;
$temp="第".$curr."/".$this->totalPages."页";
if($this->totalPages ==1)
return "$temp 仅一页";
if($this->totalPages>1)
{
return "$temp <a href=".$url.$this->prePage.$this->post_query.">上一页</a>|<a href=".$url.$this->nextPage.$this->post_query.">下一页</a>";
}
}
function UrlAnalyze()
{
if(!empty($_POST))
{
while(list($key,$value)=each($_POST))///不用extract方法是因为这种方法可以去掉多余的信息
{
if($value==null||$key=="Submit"||$key==page)
continue;
else
$this->post_query.="&".$key."=".$value;///保存POST变量中的数据
}
}
if(!empty($_GET))
{
while(list($key,$value)=each($_GET))
{
if($value==null||$key=="Submit"||$key==page)
continue;
else
$this->post_query.="&".$key."=".$value;///保存POST变量中的数据
}
}
//echo $this->post_query;
$url=$_SERVER['PHP_SELF'];
$url.="?page=";
return $url;
}
}
?>
/****
//funcation Name : 分页类
//Write Time:2005-5-14
//Author : 释然
//Descrīption :
//SQL函数有两个参数,分别是SQL语句和每页要显示的条数,第三个参数为可选参数为排序的条件
//本类无论是用POST方法还是用GET方法传递参数都可以,最终都将转化为GET方法传递参数
//本类需要SQL类支持
*/
class Page
{
var $sql;
var $pagesize;
var $sortcondition;
var $totalPages;
var $page;
var $prePage;
var $nextPage;
var $post_query;
function Page(&$sql,$sortc,$pagesize)
{
global $db;
$this->sql = &$sql;
$this->pagesize= $pagesize;
$this->sortcondition= $sortcondition;
$this->page = $_GET["page"];
///取出符合条件的资源总数,并测试连接是否有效
if(!mysql_ping())
{
echo "<font size=3 color = red>MYSQL连接失效,请重新连接!</font>";
exit;
}
$result = &$db->query($this->sql);
$totalnum = &$db->num_rows($result);
if($totalnum<1)
{
echo "不存在符合条件的信息!";
exit;
}
if(empty($this->page)){$this->page = 0;}
$this->totalPages = ceil($totalnum/$this->pagesize);
$end = ($this->totalPages-1)*$this->pagesize;
$this->prePage = ($this->page ==0?0:$this->page-$this->pagesize);
$this->nextPage= ($this->page>=$end?$end:$this->page+$this->pagesize);
if($this->sortcondition)
$this->sql .= " order by ".$this->sortcondition." DESC ";
$this->sql .= " limit ".$this->page.",".$this->pagesize;
//echo $this->sql;
}
function PageSql()
{
return $this->sql;
}
function TotalPage()
{
}
function ShowPageOne()
{
$url=$this->UrlAnalyze();
$curr = ($this->page+$this->pagesize)/$this->pagesize;
$temp="第".$curr."/".$this->totalPages."页";
if($this->totalPages ==1)
return "$temp 仅一页";
if($this->totalPages>1)
{
return "$temp <a href=".$url.$this->prePage.$this->post_query.">上一页</a>|<a href=".$url.$this->nextPage.$this->post_query.">下一页</a>";
}
}
function UrlAnalyze()
{
if(!empty($_POST))
{
while(list($key,$value)=each($_POST))///不用extract方法是因为这种方法可以去掉多余的信息
{
if($value==null||$key=="Submit"||$key==page)
continue;
else
$this->post_query.="&".$key."=".$value;///保存POST变量中的数据
}
}
if(!empty($_GET))
{
while(list($key,$value)=each($_GET))
{
if($value==null||$key=="Submit"||$key==page)
continue;
else
$this->post_query.="&".$key."=".$value;///保存POST变量中的数据
}
}
//echo $this->post_query;
$url=$_SERVER['PHP_SELF'];
$url.="?page=";
return $url;
}
}
?>
相关阅读:
- 美国33.1%企业 为更好控制代码选择开源 (songwl, 2006-9-30)
TAG: 代码
