mysql+php分页类(已测)
发布时间:2008-03-31 作者: 来源:转载
三个参数。mysql_query()的结果,url变量page,您要的每页记录数例子在这个文件底部淡水河边整理测试
复制代码 代码如下:
/*
mysql_pager.class.php
三个参数。mysql_query()的结果,url变量page,您要的每页记录数
例子在这个文件底部
淡水河边整理测试
*/
classmysql_pager{
//defineproperties
var$page;
var$result;
var$results_per_page=3;
var$total_pages;
/*
Definethemethods
下面是构造函数,和类同名(>php4)
需要查询的结果句柄,当前页码,每页记录数
like:$f->mysql_pager($result,1,15);
*/
functionmysql_pager($result,$current_page,$results_per_page){
if(!$result){
echo"数据库未运行,结果集错误
n";
return;
}
$this->result=$result;
if(!$current_page||$current_page<0)
$this->page=1;
else$this->page=$current_page;
if(!emptyempty($results_per_page))
$this->results_per_page=$results_per_page;
$numrows=@mysql_num_rows($this->result);
if(!$numrows){
echo"查询结果为空.
n";
return;
}
$this->total_pages=ceil($numrows/$this->results_per_page);
}
/*
下面是打印内容的函数,可以不用,也可以根据自己的需要扩展
这里只是打印出id
*/
functionprint_paged_results(){
echo"n";
$start=($this->page-1)*$this->results_per_page;
mysql_data_seek($this->result,$start);
$x=0;
for($i=1;$i<=$this->results_per_page&&$row=@mysql_fetch_array($this->result);$i++){
if($x++&1)$bgcolor="#F2F2FF";
else$bgcolor="#EEEEEE";
echo"".$row["id"]." | ";
//编辑这部分输出任何您想要的HTML
}
echo"n";
}
/*
下面是打印页码和链接的函数
在我们需要显示页码的地方调用
*/
functionprint_navigation(){
global$PHP_SELF;
echo"";
for($i=1;$i<=$this->total_pages;$i++){#looptoprint<<123...$total_pages>>
if($i==1&&$this->page>1)#Printsthe<echo"page-1).""onMouseOver="status="PreviousPage";returntrue;"onMouseOut="status="";returntrue;">?";
if($i==$this->page)#Doesn"tprintalinkitself,justprintspagenumber
echo"$i";
if($i!=$this->page)#Otherlinksthataren"tthispagegohere
echo"$i";
if($i==$this->total_pages&&$this->page!=$this->total_pages)#Linkfornextpage>>(notonlastpage)
echo"page+1).""onMouseOver="status="GototheNextPage";returntrue;"onMouseOut="status="";returntrue;">?";
}
echo"