知道的网友们能不能贴上来look一下啊!?

解决方案 »

  1.   

    嗯,这个问题。
    baidu/google 一下关键字“php分页类/函数”
      

  2.   

    来个php+oracle的
    <?php
    $display_rows = 50;if( isset($_GET['page']) ){
       $page = intval( $_GET['page'] );
    }
    else{
       $page = 1;
    } $sql_count = "SELECT COUNT(*) FROM users where USERSTATUS='0'";// Parse the SQL string & execute it
    $row_count=OCIParse($conn, $sql_count); 
    if($row_count)
    {      
    OCIExecute($row_count);if (OCIFetch($row_count)) {
        $num_rows = OCIResult($row_count,1);
    } else {
        $num_rows = 0;        // If no record was found
    }// Free the resources that were used for this query
    OCIFreeStatement($row_count);if (empty($page) || $page == 0) {
        $page = 1;
    }
    // The start range from where the results should be printed
    $start_range = (($page - 1) * $display_rows) + 1;
    // The end range to where the results should be printed
    $end_range = $page * $display_rows;$sql = "SELECT USERID,USERNAME,TRUENAME,SCHOOLID,USERGRADE,ROW_NO FROM (SELECT USERID, ";
    $sql .= "USERNAME,TRUENAME,SCHOOLID,USERGRADE, ROWNUM ROW_NO FROM (SELECT USERID,USERNAME, ";
    $sql .= "TRUENAME,SCHOOLID,USERGRADE FROM USERS WHERE USERSTATUS='0' ORDER BY USERID)) WHERE ROW_NO BETWEEN ";
    $sql .= $start_range." AND ".$end_range;
    //$sql = "select USERID,USERNAME,USERPSW,TRUENAME,SEX from users where USERSTATUS='1' order by USERGRADE  limit ". $start_range.", $end_range";
    ?>
    <?php
    if ($num_rows % $display_rows == 0) {
        $total_pages = $num_rows / $display_rows;
    } else {
        $total_pages = ($num_rows / $display_rows) + 1;
        settype($total_pages, integer); // Rounding the variable
    }
    echo "页次:&nbsp;<font color=red><strong>";
    echo $page;
    echo "</font></strong>/<strong>";
    echo $total_pages;
    echo "</strong>页&nbsp;共<font color=red><strong>";
    echo $num_rows;
    echo "</font></strong>个&nbsp;<strong>";
    echo $display_rows;
    echo "</strong>个/页&nbsp;&nbsp;";
    // If this is not the first page print a link to the previous page
    if ($page != 1) {
        echo "<a href='".$PHP_SELF."?page=".($page - 1)."'>【上一页】</a>";
    }// Now we can print the links to the other pages
    for ($i = 1; $i <= $total_pages;  $i++) {
        if ($page == $i){
            // Don't print the link to the current page
            echo " ".$i;
        } else {
            //Print the links to the other pages
            echo " <a href='".$PHP_SELF."?page=".$i."'>【".$i."】</a>";
        }
    }// If this is not the last page print a link to the next page
    if ($page < $total_pages) {
        echo " <a href='".$PHP_SELF."?page=".($page + 1)."'>【下一页】</a>";
    }?>
      

  3.   

    <?
    /**
     * 分页函数
     * @param String $query 传递参数的字符串
     * @param Int $total 总的数据条数
     * @param Int $page_size 每一页显示的数据条数
     * @param String $filename 分页的文件
     * @param Int $model 选择分页的形式
     * @param String $style 连接的样式:style='border:1px #999999 solid;'
     * @return String 返回分页字符串
     */
    function get_page($query,$total,$page_size,$filename,$model=5,$style="")
    {
    $recordcount=$total;
    $page=$_GET["page"];
    if(($page<0)||(!isset($page))) $page=1;
    $pages=ceil($recordcount/$page_size);
    if ($page>$pages) $page=$pages;
    $first=1;
    $prev= ($page<=1) ? 1 : ($page-1);
    $next= ($page>=$pages) ?  $pages : ($page+1);
    $last=$pages;
    if ($query=="")
     $type="";
    else
    $type = "&".$query;
    $style = ($style=="") ? "" : " class='".$style."'";
    $feystr="记录总数: <font color='#FF6500'>".$recordcount."</font>  页数: <font color='#FF6500'>".$page."/".$pages."</font>&nbsp;&nbsp;&nbsp;&nbsp;";
    switch($model){
    case 1:
    if (($page==1)&&($pages>1)){ 
    $feystr.="第一页&nbsp;";
    $feystr.="<a href='".$filename."?page=".$next."$type'$style>下一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$last."$type'$style>最后一页</a>&nbsp;";
    }
    if(($page>1)&&($page<$pages)){
    $feystr.="<a href='".$filename."?page=".$first."$type'$style>第一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$prev."$type'$style>上一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$next."$type'$style>下一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$last."$type'$style>最后一页</a>&nbsp;";
    }
    if(($page==$pages)&&($pages!=1)){
    $feystr.="<a href='".$filename."?page=".$first."$type'$style>第一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$prev."$type'$style>上一页</a>&nbsp;";
    $feystr.="最后一页&nbsp;";

    }
    $feystr.="&nbsp;&nbsp;&nbsp;&nbsp;选择页码:&nbsp;<select name='page_now' id='page_now' onChange=\"javascript:window.open(page_now.value,'_self')\">";
    for($i=1;$i<=$pages;$i++){
    if($_GET["page"]==$i){
    $feystr.="<option value='".$filename."?page=".$i."$type' selected>".$i."</option>";
    } else {
    $feystr.="<option value='".$filename."?page=".$i."$type'>".$i."</option>";
    }
    }
    $feystr.="</selected>";
    break;

    case 2:
    for($j=1;$j<=$pages;$j++){
    if ($page==$j){
    $feystr.="$i";
    } else {
    $feystr.=" <a href='".$filename."?page=".$j."$type'$style>[".$j."]</a> ";
    }
    }
    break;

    case 3:
    $feystr .= "<a href='".$filename."?page=".$prev.$type."'$style><img src='images/prev.gif' border='0'></a>";
     for($i=1;$i<=$pages;$i++)
     {
    if ($i==$page)
    {
    $feystr .= "<b>  ".$i."  </b>";
    }
    else
    {
    $feystr .= "<a href='".$filename."?page=".$i.$type."'$style>  ".$i."  </a>";
    }
     }
    $feystr .= "<a href='".$filename."?page=".$next.$type."'$style><img src='images/next.gif' border='0'></a>";
    break;

    case 4:
    $feystr="第".$page."页/共".$pages."页&nbsp;|&nbsp;总".$recordcount."条记录&nbsp;|&nbsp;";
    if(($page==1)&&($pages>1)){
    $feystr.="首页&nbsp;|&nbsp;上页&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$next."$type'$style>下页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$last."$type'$style>尾页</a>&nbsp;|&nbsp;";
    }
    if(($page>1)&&($page<$pages)){
    $feystr.="<a href='".$filename."?page=".$first."$type'$style>首页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$prev."$type'$style>上页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$next."$type'$style>下页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$last."$type'$style>尾页</a>&nbsp;|&nbsp;";
    }
    if(($page==$pages)&&($pages!=1)){
    $feystr.="<a href='".$filename."?page=".$first."$type'$style>首页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$prev."$type'$style>上页</a>&nbsp;|&nbsp;";
    $feystr.="下页&nbsp;|&nbsp;尾页&nbsp;|&nbsp;";
    }
    $feystr.="<input name='pageTo' type='text' size='5' id='pageTo'>&nbsp;"; 
    $feystr.="<input type='submit' name='Submit' value='GoTo' onClick=\"javascript:location.href='".$filename."?page='+pageTo.value+'$type';\">";
    break;

    case 5:
    $feystr="共".$recordcount."条记录 每页显示".$page_size."条记录 共".$pages."页 ";
    if($page>1)
    $feystr.="<a href='".$filename."?page=1".$type."'$style>首页</a> <a href='".$filename."?page=".($page-1).$type."'$style>前页</a> ";
    else
    $feystr.="首页 前页 ";

    $offset = floor($page/10);
    $page_left = $offset==0 ? 1 : $offset*10;
    $page_right= $pages<($page_left+10) ? $pages : $page_left+10;
    if($page_right==11) $page_right = $page_right-1;
    for($i=$page_left;$i<=$page_right;$i++)
    {
    if($i==$page)
    $feystr.="<font color=red>$i</font> ";
    else
    $feystr.="<a href='".$filename."?page=".$i.$type."'$style>$i</a> ";
    }
    if($page<$pages)
    $feystr.="<a href='".$filename."?page=".($page+1).$type."'$style>后页</a> <a href='".$filename."?page=".$pages.$type."'$style>尾页</a>";
    else
    $feystr.="后页 尾页";
    break;
    case 6:
    $feystr="Total ".$recordcount." field show per page ".$page_size." field total ".$pages." page ";
    if($page>1)
    $feystr.="<a href='".$filename."?page=1".$type."'$style>First</a> <a href='".$filename."?page=".($page-1).$type."'$style>Prev</a> ";
    else
    $feystr.="First Prev ";

    $offset = floor($page/10);
    $page_left = $offset==0 ? 1 : $offset*10;
    $page_right= $pages<($page_left+10) ? $pages : $page_left+10;
    if($page_right==11) $page_right = $page_right-1;
    for($i=$page_left;$i<=$page_right;$i++)
    {
    if($i==$page)
    $feystr.="<font color=red>$i</font> ";
    else
    $feystr.="<a href='".$filename."?page=".$i.$type."'$style>$i</a> ";
    }
    if($page<$pages)
    $feystr.="<a href='".$filename."?page=".($page+1).$type."'$style>Next</a> <a href='".$filename."?page=".$pages.$type."'$style>End</a>";
    else
    $feystr.="Next End";
    break;
    case 7:
    $feystr="Total ".$recordcount." notes Each page ".$page_size." notes Total ".$pages." pages ";
    if($page>1)
    $feystr.="<a href='".$filename."?page=1".$type."'$style>First</a> <a href='".$filename."?page=".($page-1).$type."'$style>Front</a> ";
    else
    $feystr.="First Front ";

    $offset = floor($page/10);
    $page_left = $offset==0 ? 1 : $offset*10;
    $page_right= $pages<($page_left+10) ? $pages : $page_left+10;
    if($page_right==11) $page_right = $page_right-1;
    for($i=$page_left;$i<=$page_right;$i++)
    {
    if($i==$page)
    $feystr.="<font color=red>$i</font> ";
    else
    $feystr.="<a href='".$filename."?page=".$i.$type."'$style>$i</a> ";
    }
    if($page<$pages)
    $feystr.="<a href='".$filename."?page=".($page+1).$type."'$style>Next</a> <a href='".$filename."?page=".$pages.$type."'$style>Final</a>";
    else
    $feystr.="Next Final";
    break;
    }
    return $feystr;
    }
    ?>
      

  4.   

    //分页函数 (Ver0.0.4 Build2007-06-15)
    //调  用: page(string 待分页SQL,int 当前页,int 每页主题数,int 页码条页数,int 前导页码数)
    //返回值: array("bar"=>"页码条string","sql"=>"当前分页SQL")
    //待解决:$url=$_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'],'?')?"&p=":"?p="); //分析URI,如果含?则?p=,不含则为&p=
    //分页信息
    define("_P_TOPIC",8); //每页主题数
    define("_P_NUM",7); //分页栏的页码数
    define("_P_PRE",3); //当前页前导function page($sql,$p,$_p_topic=_P_TOPIC,$_p_num=_P_NUM,$_p_pre=_P_PRE)
    {
    //以下初始化各项参数
    $parr=array("bar"=>'',"sql"=>'');
    $re=@mysql_query($sql) or die(ErrorInfo());
    $alltopic=@mysql_num_rows($re);
    if($alltopic<=0) return 0; //无主题直返回
    $pagebody="";$pagego=""; //参数初始化
    $pa=ceil($alltopic/$_p_topic); //求得总页数,进一取整
    if($p<=0 || $p>$pa) $p=1; //当前页不在范围,初始化当前页
    $url=$_SERVER['PHP_SELF'].'?p=';
    //以下求解页码范围$pa与当前页$p
    if($pa>$_p_num) //最大页数大于"页码条所列页数"
    {
    if($p>=1 && $p<=$_p_pre) {$ps=1;$pe=$_p_num;} //当前页处于前导页内
    elseif($p>$_p_pre && $p<=$pa-$_p_num+$_p_pre) {$ps=$p-$_p_pre;$pe=$p+$_p_num-$_p_pre-1;} //当前页处于正常范围
    else {$ps=$pa-$_p_num+1;$pe=$pa;} //当前页处于页尾$pa>=$p>$pa-$_p_num+$_p_pre
    $pagego=" <input style='vertical-align:middle;width:24px;' type='text' onKeyDown=\"if(event.keyCode==13) {window.location='".$_SERVER["PHP_SELF"]."?p='+this.value; return false;}\">";
     }
     else
     {  $ps=1;$pe=$pa; } //最大页数小于"页码条所列页数"
    //以下构建页码条
     for($i=$ps;$i<=$pe;$i++)
     {
    $pagebody.=($i==$p)?" <span class='nowpage'>&nbsp;".$i."&nbsp;</span> ":" <span><a href='".$url.$i."'>&nbsp;".$i."&nbsp;</a></span> ";
     }
    //以下构建返回数组的值
    $parr["bar"]="\n<div id='page'>\n<span>&nbsp;".$p."/".$pa."&nbsp;".$alltopic.":".$_p_topic."&nbsp;</span>".($pa>$_p_num?($p==1?'':' <span>&nbsp;<a href=\''.$url.'1\' title=\'第一页\'>&nbsp;|&lt&nbsp;</a></span>').$pagebody.($p==$pa?'':'<span><a href=\''.$url.$pa.'\' title=\'最后一页\'>&nbsp;&gt;|&nbsp;</a>&nbsp;</span>'):$pagebody).$pagego."\n</div>\n";
    $parr["sql"]=$sql." LIMIT ".($p-1)*$_p_topic.",".$_p_topic;
    return $parr;
    }
      

  5.   

    楼主,你在CSDN里搜一下“分页”就有好几百个结果,你是分多了是不是?