WebjxCom提示:
PHP教程:类似GOOGLE搜索结果的分页
。 functionreterPageStr($pageSize,$curPage,$countSql,$pagePara)
{
//返回字符串rsStart||pageStr
if($rsResult=
mysql_query($countSql))$rsCount=
mysql_result($rsResult,0,0);
$pageCount=ceil($rsCount/$pageSize);
if(!isset($curPage))$curPage=1;
if($curPage<1)$curPage=1;
if($curPage>$pageCount)$curPage=$pageCount;
$rsStart=($curPage-1)*$pageSize;
$pageStr=outPageList($pageCount,$curPage,$pagePara);
$outStr=$rsStart."||".$pageCount."||".$pageStr."||".$rsCount;
return$outStr;
}
functionoutPageList($pageCount,$curPage,$pagePara)
{
if($pageCount>1)
{
$pageListNum=10;
$step=5;
$pageStr="";
$prePage=$curPage-1;
$nextPage=$curPage+1;
$pageFromNum=$curPage-$step;
$pageToNum=$curPage+$step;
if($pageCount<$step)
{
$pageFromNum=1;
$pageToNum=$pageCount;
}elseif($pageCount<$pageListNum)
{
$pageFromNum=1;
$pageToNum=$pageCount;
}
elseif($pageToNum>$pageCount)
{
$pageToNum=$pageCount;
if(($pageToNum-$pageFromNum)<$pageListNum)
{
$pageFromNum=$pageToNum-$pageListNum+1;
}
}else
{
if($pageFromNum<1)
{
$pageFromNum=1;
$pageToNum=$curPage+$step-1;
}
}
$pageStr.='
<scriptlanguage="javascript">
functionfucCheckNUM(obj){
varpatn=/^d+(.d+)?$/;
if(!patn.test(obj.value))
{
obj.value="1";
returnfalse;
}
returntrue;
}
functionlocationPage(url)
{
varpageNum=document.getElementById("curPage").value;
varurlto=url+"&curPage="+pageNum;
window.location=urlto;
}
script>
';
/*开始输出*/
$pageStr.="
<style>
/*分页样式*/
.PageClass{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;padding-top:0px;text-align:left;margin-top:2px;line-height:22px;height:22px;}
.PageClassul{float:left;}
.PageClassulli{margin-right:3px;float:left;}
.PageClassullia{border:1pxsolid#d8dfef;color:#01669A;text-decoration:none;padding:1px4px;width:20px;height:15px;}
.PageClassullia:hover{color:#fe6601;text-decoration:none;border:1pxsolid#d8dfef;padding:1px4px;height:18px;}
style>
<divclass="PageClass">
<ul>
<li><strong>".$curPage."/".$pageCount."strong>li>
ul>";
if($curPage!=1){
$pageStr.="
<ul>
<li>
<ahref=?curPage=1".$pagePara.">首页a><ahref=?curPage=$prePage&".$pagePara.">上一页a>
li>
ul>";
}
$pageStr.="<ul>";
for($i=$pageFromNum;$i<=$pageToNum;$i++){
$pageStr.="<li>";
if($curPage==$i){
$pageStr.=$i;
}else{
$pageStr.="<ahref=?curPage=$i&".$pagePara.">$ia>";
}
$pageStr.="li>";
}
$pageStr.="ul>";
if($curPage!=$pageCount){
$pageStr.="<ul><li>";
$pageStr.="<ahref=?curPage=$nextPage".$pagePara.">下一页a><ahref=?curPage=$pageCount&".$pagePara.">末页a>";
$pageStr.="li>ul>";
}
$url="?url=a&".$pagePara;
$pageStr.='<ul>
<inputtype="text"id="curPage"name="curPage"value="'.$curPage.'"onBlur="fucCheckNUM(this)"style="width:30px;border:1pxsolid#000;"/>
';
$pageStr.="
<inputtype="button"value="Go"onclick="locationPage('".$url."')"style="line-height:20px;border:1pxsolid#000;width:25px;height:20px;"/>";
$pageStr.='ul>';
$pageStr.="div>";
return$pageStr;
}
}
如上所示
。 调用的时候只是需要调用
reterPageStr($pageSize,$curPage,$countSql,$pagePara)
这个函数即可。
返回的的是个字符串
,以"||"分割开的。
$outStr=$rsStart."||".$pageCount."||".$pageStr."||".$rsCount;
$rsStart是用来读取数据库的时候limit后面的参数
$pageCount是表示共有多少页码
$pageStr即是输出的页码。
$rsCount是记录总数。
调用的示例如下
$countSql="selectcount(Com_ID)fromCommentList";
$pageSize="20";
$curPage=$_GET['curPage'];
$UrlPara="&Com_TypeID=$Com_TypeID&Com_Type=$Com_Type";
$pageOutStr=reterPageStr($pageSize,$curPage,$countSql,$UrlPara);
$pageOutStrArr=explode("||",$pageOutStr);
$rsStart=$pageOutStrArr[0];
$pageStr=$pageOutStrArr[2];
$sql="selectCom_ID,Com_TypefromCommentListorderbyCom_IDdesclimit$rsStart,$pageSize";
在这里
,$UrlPara是在地址的问号后面的参数