PHP实例源代码:PHP实现翻页处理的类
\n
\n
<?php
class Page{
\n
var CountAll; //共有纪录数
var CountPage; //每页显示记录数
var Link; //显示 完整的分页信息
var ForPage; //上一页
var NextPage; //下一页
var FirstPage; //第一页
var LastPage; //最后一页
var CurrPage; //第几页
var PageNum; //共有多少页
var Parameter; //参数
var LimitNum; //不是统计全部记录,而是显示部分记录,例如共有100条记录,但是只统计显示前50条
\n
function Page(sql, num=30){
\n
//初始化,统计记录数
this->CountPage = num;
global mysql;
sql = base64_decode(sql);
result = mysql->Query(sql);
if (0 != mysql->AffectedRows()){
row = mysql->FetchArray(result);
this->CountAll = row[0];
}
else{
this->CountAll = 0;
}
//print “共有 this->CountAll <br>”;
}
\n
function ListPage(sql, page=0,sql_all,other){
//查询,定义变量,获取数据
\n
global mysql;
//print “sql sql<br>”;
if (isset(this->LimitNum) && this->CountAll > this->LimitNum){
this->CountAll = this->LimitNum;
}//更新总浏览记录数
\n
sql_src = sql;
//if (page > 0){
sql = base64_decode(sql);
sql_all = base64_decode(sql_all);
sql_src = sql;
//}
//echo sql;
if ((this->CountAll % this->CountPage) == 0)//统计共有多少页
pagecount = (integer)(this->CountAll/this->CountPage);
else
pagecount = (integer)(this->CountAll/this->CountPage)+1;
this->ageNum = pagecount;
if (page > this->ageNum)//如果页码超过页码总数则设为最大页码
page = this->ageNum;
if (page <= 0)//如果页码小于等于零则将页码设置为1
page = 1;
\n
if (this->CountAll == 0)
{
this->CurrPage = 0;
}else{
this->CurrPage = page;
}
first_start = (page-1)*this->CountPage;
sql = sql.” limit “.first_start.”, “.this->CountPage;
//print “2sql<br>”;
result = mysql->Query(sql);
if (0 != mysql->AffectedRows()){
i = 0;
while(row = mysql->FetchArray(result)){
array[i] = row;
//print “name:”.array[i][Name].”<br>”;
i++;
}
}
\n
sql = base64_encode(sql_src);
sql_all = base64_encode(sql_all);
if (pagecount >1){
if(page == 1){
nextpage = page+1;
forpage = 1;
this->Link = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=nextpage”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/next.gif” align=”absmiddle”> </button><button onClick=”javascript:location.href=’?query_sql=sql&query_page=pagecount”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev_end.gif” align=”absmiddle”> </button>”;
this->NextPage = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=nextpage”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/next.gif” align=”absmiddle”> </button>”;
this->LastPage = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=pagecount”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev_end.gif” align=”absmiddle”> </button>”;
}
else if((page > 1)&&(page < pagecount)) {
forpage = page-1;
nextpage = page+1;
this->Link = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=1″.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev_top.gif” align=”absmiddle”> </button><button onClick=”javascript:location.href=’?query_sql=sql&query_page=forpage”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev.gif” align=”absmiddle”> </button><button onClick=”javascript:location.href=’?query_sql=sql&query_page=nextpage”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/next.gif” align=”absmiddle”> </button><button onClick=”javascript:location.href=’?query_sql=sql&query_page=pagecount”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev_end.gif” align=”absmiddle”> </button>”;
this->ForPage = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=forpage”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev.gif” align=”absmiddle”> </button>”;
this->NextPage = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=nextpage”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/next.gif” align=”absmiddle”> </button>”;
this->FirstPage = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=1″.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev_top.gif” align=”absmiddle”> </button>”;
this->LastPage = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=pagecount”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev_end.gif” align=”absmiddle”> </button>”;
}
else if (page = pagecount){
forpage = page-1;
nextpage = 1;
this->Link = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=1″.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev_top.gif” align=”absmiddle”> </button><button onClick=”javascript:location.href=’?query_sql=sql&query_page=forpage”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev.gif” align=”absmiddle”> </button>”;
this->FirstPage = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=1″.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev_top.gif” align=”absmiddle”> </button>”;
this->ForPage = “<button onClick=”javascript:location.href=’?query_sql=sql&query_page=forpage”.this->Parameter.”&sql_all=”.sql_all.”".other.”‘” class=”button_a” style=”width:30;height:22″;><img src=”images/prev.gif” align=”absmiddle”> </button>”;
}
}
else{
this->Link = ‘ ‘;
}
\n
return array;//array;
\n
}
\n
}
/***************
使用例子
\n
include(“class.config.php”);
include(“class.mysql.php”);
include(“class.page.php”);
global mysql;
config = new Config;
mysql = new TDatabase(config);
\n
query_all = “select count(*) from user”;
page_object = new Page(query_all,20);
//new Page(‘统计记录个数语句’,每页记录个数)
if(empty(query_page))
query_sql = “select * from user”;
//注意这里的变量名必须为 query_sql query_page ,因为下一页的连接参数默认为 query_sql query_page
\n
list = page_object->ListPage(query_sql,query_page);
//ListPage(‘没有limit的前一部分,系统自动根据补齐’,察看的页数)
page_object->Parameter = ‘&action=view’;
//这是传送的Url 所带的其它参数,如果有就修改变量 Parameter ,系统自动将她补在后面
//显示数据
for (i=0;i< page_object->CountPage;i++)
print list[i][ID].”->”.list[i][UserName].”<br>”;
//返回的数据为二维哈西(关联)数组,一维为纪录的标识ID号,二维为哈西(关联)数组,取值标识建议采取用数据库中字段名的方法,例如list[0][UserName]。
\n
//显示其他相关数据
echo page_object->CountAll;//纪录总数
echo page_object->CountPage;//每页显示数据个数
echo page_object->Link;//显示完整的分页信息
echo page_object->FirstPage;//第一页
echo page_object->NextPage;//下一页
echo page_object->ForPage;//上一页
echo page_object->LastPage;//最后一页
echo page_object->CurrPage;//第几页
echo page_object->PageNum;//共有多少页
mysql->DatabaseClose();
****************/
\n
?>
\n