mysql分页记录从0开始_dw php mysql记录集分页

这是一个使用PHP编写的分页类示例,用于处理MySQL数据库的分页查询。类中包含设置分页参数、SQL语句、计算总页数和记录数等功能,并提供绘制分页导航条的方法。
摘要由CSDN通过智能技术生成

展开全部

用一个分页类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;

}

//方法结束

}

?>

本回答由提问者推荐

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值