程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP實現類似GOOGLE搜索結果的分頁

PHP實現類似GOOGLE搜索結果的分頁

編輯:PHP綜合

function reterPageStr($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;
}


function outPageList($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.='
    <script language="Javascript">
    function fucCheckNUM(obj){    
    
    var patn = /^\d+(\.\d+)?$/;
    
    if(!patn.test(obj.value))
    {
        obj.value="1";
         return false;
    }
    return true;
    }
    
    function locationPage(url)
    {
        var pageNum=document.getElementById("curPage").value;
        var urlto=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;}
        .PageClass ul{ float:left;}
        .PageClass ul li{ margin-right:3px; float:left;}
        .PageClass ul li a{border:1px solid #d8dfef; color:#01669A; text-decoration:none;padding:1px 4px;width:20px; height:15px;}
        .PageClass ul li a:hover{ color:#fe6601;text-decoration:none; border:1px solid #d8dfef;padding:1px 4px; height:18px;}    
    style>
    <div class=\"PageClass\">
        <ul>
            <li><strong>".$curPage."/".$pageCount."  strong>li>
        ul>";
    if($curPage!=1){    
        $pageStr.="
        <ul>
            <li>
                <a href=?curPage=1".$pagePara.">首頁a> <a href=?curPage=$prePage&".$pagePara.">上一頁a>
            li>
        ul>";
    }
    $pageStr.="<ul>";
    for($i=$pageFromNum;$i<=$pageToNum;$i++){
        $pageStr.="<li>";
        if($curPage==$i){
            $pageStr.=$i;
        }else{
            $pageStr.="<a href=?curPage=$i&".$pagePara.">$ia>";
        }
        $pageStr.="li>";
    }
    $pageStr.="ul>";
    
    if($curPage!=$pageCount){
        $pageStr.="<ul><li>";
        $pageStr.="<a href=?curPage=$nextPage".$pagePara.">下一頁a> <a href=?curPage=$pageCount&".$pagePara.">末頁a>";
        $pageStr.="li>ul>";
    }
    
    $url="?url=a&".$pagePara;
    $pageStr.='<ul>
    
     
    <input type="text" id="curPage" name="curPage" value="'.$curPage.'" onBlur="fucCheckNUM(this)" />
    ';
    $pageStr.="
    <input type=\"button\" value=\"Go\" onclick=\"locationPage('".$url."')\" style=\"line-height:20px;border:1px solid #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="select count(Com_ID) from CommentList ";
    $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="select Com_ID,Com_Type from CommentList order by Com_ID desc limit $rsStart,$pageSize ";   

在這裡,$UrlPara 是 在地址的問號後面的參數

比如地址是 http://www.Javapeixun.com.cn/blog/?curPage=2&type=a 則 $UrlPara="&type=a";

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved