PHP分页函数

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
已经发了很多PHP分页函数了,不过我仍然要继续发,因为方法不同,也许大家会有用到
<?
//分页函数

 function genpage(&$sql,$page_size=20)
 {
      global $prepage,$nextpage,$pages,$sums;  //out param
      $page = $_GET["page"];
      $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)."页:&nbsp;"; 
    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>&laquo;</a></b>";
    for($i=$startpage;$i<=$endpage;$i++)
    {
        if($i==$page)    echo "&nbsp;<b>[".($i+1)."]</b>&nbsp;";
        else        echo "&nbsp;<a href=$PHP_SELF?page=$i&$queryString>".($i+1)."</a>&nbsp;";
    }
    if($endpage<$pages)
        echo "<b><a href=$PHP_SELF?page=".($page+$shownum*2)."&$queryString>&raquo;</a></b> ... ";
    if($page<$pages)
        echo "<a href=$PHP_SELF?page=$pages&$queryString>最后页</a>";

}
?>
调用:
<?
 $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(); //显示页
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值