当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP教程:类似GOOGLE搜索结果的分页

PHP
PHP脚本中include文件出错解决方法
织梦cms的php采集类
php大文件上传经典源码
(PHP技巧)setcookie语句的问题
PHP安装全攻略:APACHE
PHP和JS实现普通HTTP上安全地传输密码
一个数据库备份类
PHP生成中文拼音
轻松实现php代码防注入,保护代码安全
PHP在网站开发中的一些优势
php自动更新新闻diy _php实例
php实现文件安全下载
php操作access数据库类代码
自定义PHP分页函数
一个简单实用的php加图片水印函数
PHP在Web开发领域的优势
学习php中10个基础知识总结
IIS6.0平台下PHP最佳配置方法
PHP 5.2.8 紧急发布 修复5.2.7严重漏洞
升级PHP5的理由:PHP4和PHP5性能大对比

PHP教程:类似GOOGLE搜索结果的分页


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 93 ::
收藏到网摘: n/a

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)" style="width:30px;border:1px solid #000;"/>
    ';
    $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";

OK。再有什么不明白的。给我留言即可。