PHP分頁函數

來源:互聯網
上載者:User
分頁|函數

<?

//分頁函數

 

function genpage(&$sql,$page_size=20)

{

      global $prepage,$nextpage,$pages,$sums;  //out param

      $page = $_GET["page"]>=1?$_GET["page"]:1;

      $eachpage = $page_size;

      $pagesql = strstr($sql," from ");

      $pagesql = "select count(*) as ids ".$pagesql;

      $result = mysql_query($pagesql);

      if($rs = mysql_fetch_array($result)) $sums = $rs[0];

      $pages = ceil(($sums-0.5)/$eachpage)-1;

      $pages = $pages>=0?$pages:0;

      $prepage = ($page>0)?$page-1:0;

      $nextpage = ($page<$pages)?$page+1:$pages; 

      $startpos = $page*$eachpage;

    $sql .=" limit $startpos,$eachpage ";

}

//顯示分頁

function showpage()

{

    global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function
    $shownum =10/2;

    $startpage = ($page>=$shownum)?$page-$shownum:0;

    $endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages;

  

    echo "共".($pages+1)."頁: ";

    if($page>0)echo "<a href=$PHP_SELF?page=0&$queryString>第一頁</a>";

    if($startpage>0)

        echo " ... <b><a href=$PHP_SELF?page=".($page-$shownum*2)."&$queryString>«</a></b>";

    for($i=$startpage;$i<=$endpage;$i++)

    {

        if($i==$page)    echo " <b>[".($i+1)."]</b> ";

        else        echo " <a href=$PHP_SELF?page=$i&$queryString>".($i+1)."</a> ";

    }

    if($endpage<$pages)

        echo "<b><a href=$PHP_SELF?page=".($page+$shownum*2)."&$queryString>»</a></b> ... ";

    if($page<$pages)

        echo "<a href=$PHP_SELF?page=$pages&$queryString>最後頁</a>";

 

}

?>


--------------------------------------------------------------------------------

調用:

PHP代碼:--------------------------------------------------------------------------------<? $sql = "select * from table1 where 1 order by id desc "; genpage($sql);  //只需要正常代碼加上這一行就ok。 $result =mysql_query($sql);while($rs = mysql_fetch_array($result)){//display}showpage(); //顯示頁?>

 



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.