展开全部
用一个分页类e69da5e887aa3231313335323631343130323136353331333262353332。直接调用。
/**
* 分页类
* 用DBMySQL类读取数据库
*/
class BreakPage
{
//属性开始
var $pageparam="pageno";
var $sql;//显示数据的sql
var $countsql;//显示总记录数的SQL
var $max_line;//最大记录数
var $begin_record;//开始记录数
var $current_page;//当前页
var $total_record;//总记录数
var $total_page;//总页数
var $conn_id;//数据库连接
var $query_id;//查询句柄
var $row_num;//当页记录的条数
var $url;//url
var $param="";
//属性结束
function setpageparam($pageparam)
{
$this->pageparam=$pageparam;
}
function getpageparam()
{
return $this->pageparam;
}
function setrows($rows)
{
$this->row_num=$rows;
}
function getrows()
{
return $this->row_num;
}
function setparam($param)
{
$this->param=$param;
}
function getparam()
{
return $this->param;
}
function seturl($url)
{
$this->url=$url;
}
function geturl()
{
return $this->url;
}
//属设置开始
function setcountsql($countsql)
{
$this->countsql="select count(*) as count from (".$countsql.") as temp1";
}
function getcountsql()
{
return $this->countsql;
}
function settotalpage($totalpage)
{
$this->total_page=$totalpage;
}
function gettotalpage()
{
return $this->total_page;
}
function settotalrecord($totalrecord)
{
$this->total_record=$totalrecord;
}
function gettotalrecord()
{
return $this->total_record;
}
/**
* 设置当前页,从1开始
*
* @param unknown_type $currentpage
*/
function setcurrentpage($currentpage)
{
$this->current_page=$currentpage<1? 1:$currentpage;
}
function getcurrentpage()
{
return $this->current_page;
}
function setbeginline($begin)
{
$this->begin_record=$begin;
}
function getbeginline()
{
return $this->begin_record;
}
function setsql($sql)
{
$this->sql=$sql;
}
function getsql()
{
return $this->sql;
}
/**
* 设置最大记录数
* @param unknown_type $maxline
*/
function setmaxline($maxline)
{
$this->max_line=$maxline;
}
function getmaxline()
{
return $this->max_line;
}
//属性设置结束
function __construct()
{//连接数据库
$this->setbeginline(0);
$this->setmaxline(10);
}
function __destruct()
{
}
//方法开始
/**
* 主体函数,查询当前页的记录,同时返回信息
* @param string $sql:查询的SQL,如select * from table1;
* @param string $countsql:总数量的SQL,如select count(*) from table1;
* @return 当前页的记录
*/
function getrecords($db,$sql)
{
$this->setsql($sql);//设置查询的SQL
$this->setcountsql($sql);//设置查询总数量的SQL
//查询总记录数,可用gettotalrecord()方法返回总记录数
$db->query($this->getcountsql());
$db->seek(0);
//返总记录数
$this->settotalrecord($db->f(0));
$db->free();
//根据当前页和每页最大记录数计算开始和结束记录
//可用getbeginline()方法查询开始记录值,即limit的开始值
//可用getmaxline()方法查询每页记录数,即limit的第二个限制值
$this->setbeginline(($this->getcurrentpage()-1)*$this->getmaxline());//设置开始记录值,即limit的开始值
//计算结束
//计算总页数
//可用gettotalpage()查询总页数
$this->settotalpage((int)(($this->gettotalrecord()+$this->getmaxline()-1)/$this->getmaxline()));//(总记录数+每页记录数-1)/每页记录数
//计算结束
//返回当前记录
$temp_sql=$this->getsql()." limit ".$this->getbeginline().",".$this->getmaxline();//构造限制的SQL语句
$db->query($temp_sql);
$result=$db->getalldata();
return $result;
//结束
}
function paint()
{
$prepg=$this->getcurrentpage()<=1? 1:$this->getcurrentpage()-1;//上一页
$nextpg=$this->getcurrentpage()>=$this->gettotalpage()? $this->gettotalpage():$this->getcurrentpage()+1;//下一页
$otherparam=$this->getparam()!=""? "&".$this->getparam():"";
$pagenav="
if($this->getcurrentpage()==1)
{//第一页
$pagenav.="
首页<< ";}
else
{
$pagenav.="
首页<< ";}
if($this->getcurrentpage()>1)
{//有上一页
$pagenav.="
上一页";}
else
{//第一页
$pagenav.="
上一页";}
if($this->getcurrentpage()gettotalpage())
{//有下一页
$pagenav.="
下一页";}
else
{
$pagenav.="
下一页";}
if($this->getcurrentpage()>=$this->gettotalpage())
{//没有下一页
$pagenav.="
>> 尾页";}
else
{
$pagenav.="
>> 尾页";}
//下拉跳转列表,循环列出所有页码:
$οnchange=$otherparam!=""? 'window.location="'.$this->url.'?'.$this->getpageparam().'="+this.value+"'.$otherparam.'"':'window.location="'.$this->url.'?'.$this->getpageparam().'="+this.value';
$pagenav.="
共 ".$this->gettotalpage()."页 第 ".$this->getcurrentpage()."页 转到第";for($i=1;$i<=$this->gettotalpage();$i++)
{
if($i==$this->getcurrentpage())
{
$pagenav.="$i\n";
}
else
{
$pagenav.="$i\n";
}
}
$pagenav.="
页";$pagenav.="
";return $pagenav;
}
//方法结束
}
?>
本回答由提问者推荐
已赞过
已踩过<
你对这个回答的评价是?
评论
收起