mysql+php分页类(已测)
2018-09-07 15:21
复制代码 代码如下:
<?php
/*
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<divalign=center>数据库未运行,结果集错误</div>\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<divalign=center>查询结果为空.</div>\n;
return;
}
$this->total_pages=ceil($numrows/$this->results_per_page);
}
/*
下面是打印内容的函数,可以不用,也可以根据自己的需要扩展
这里只是打印出id
*/
functionprint_paged_results(){
echo<tableborder=0align=center>\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<trbgcolor=$bgcolor><td>.$row[id].</td></tr>;
//编辑这部分输出任何您想要的HTML
}
echo</table>\n;
}
/*
下面是打印页码和链接的函数
在我们需要显示页码的地方调用
*/
functionprint_navigation(){
global$PHP_SELF;
echo<divalign=center>;
for($i=1;$i<=$this->total_pages;$i++){#looptoprint<<123...$total_pages>>
if($i==1&&$this->page>1)#Printsthe<<firsttogotothepreviouspage(notonpage1)
echo<ahref=\$PHP_SELF?page=.($this->page-1).\onMouseOver=\status=PreviousPage;returntrue;\onMouseOut=\status=;returntrue;\>?</a>;
if($i==$this->page)#Doesntprintalinkitself,justprintspagenumber
echo<fontcolor=\#ff3333\>$i</font>;
if($i!=$this->page)#Otherlinksthatarentthispagegohere
echo<ahref=\$PHP_SELF?page=$i\onMouseOver=\status=GotoPage$i;returntrue;\onMouseOut=\status=;returntrue;\>$i</a>;
if($i==$this->total_pages&&$this->page!=$this->total_pages)#Linkfornextpage>>(notonlastpage)
echo<ahref=\$PHP_SELF?page=.($this->page+1).\onMouseOver=\status=GototheNextPage;returntrue;\onMouseOut=\status=;returntrue;\>?</a>;
}
echo</div>\n;
}
}
/*
mysql_connect($server,$uname,$pass);
mysql_select_db($db);
$result=@mysql_query(Select*FROMtable);
$p=newmysql_pager($result,$page=$_GET[page],10);
$p->print_navigation();
$p->print_paged_results();
$p->print_navigation();
*/
?>