php分页类


php分页一般做开发的都会用到,网上收集了几个 下面是案例。

<?php

// pager类

$page = $_GET

function pager($rows,$page_size){

global $page,$select_from,$select_limit,$pagenav;

$page_count = ceil($rows/$page_size);

if($page <= 1 || $page == '') $page = 1;

if($page >= $page_count) $page = $page_count;

$select_limit = $page_size;

$select_from = ($page - 1) * $page_size.',';

$pre_page = ($page == 1)? 1 : $page - 1;

$next_page= ($page == $page_count)? $page_count : $page + 1 ;

$pagenav .= "第 $page/$page_count 页 共 $rows 条记录 ";

$pagenav .= "<a href='?page=1'>首页</a> ";

$pagenav .= "<a href='?page=$pre_page'>前一页</a> ";

$pagenav .= "<a href='?page=$next_page'>后一页</a> ";

$pagenav .= "<a href='?page=$page_count'>末页</a>";

$pagenav.=" 跳到<select name='topage' size='1' onchange='window.location=\"?page=\"+this.value'>\n";

for($i=1;$i<=$page_count;$i++){

if($i==$page) $pagenav.="<option value='$i' selected>$i</option>\n";

else $pagenav.="<option value='$i'>$i</option>\n";

}

}

// 使用示例

if (!$conn= mysql_connect("localhost", "root" ,"root")) die('链接数据库失败!');


if (!mysql_select_db("test", $conn)) die('链接数据库失败!');

mysql_query('set names GBK');


$rows = mysql_num_rows(mysql_query("select * from test"));

pager($rows,2); ///////////////////////////// 利用pager函数计算出 $select_from 从哪条记录开始检索、$pagenav 输出分页导航

$sql = "select * from test limit $select_from $select_limit";

$rst = mysql_query($sql);

while ($row = mysql_fetch_array($rst)){

echo "$row[id] - $row[sex] - $row[name] <hr />";

}

echo $pagenav;

?>


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


第二个



* 使用方法:


    require_once('mypage.php');


    $result=mysql_query("select * from mytable", $myconn);


    $total=mysql_num_rows($result);    //取得信息总数


    pageDivide($total,10);     //调用分页函数


     


    //数据库操作


    $result=mysql_query("select * from mytable limit $sqlfirst,$shownu", $myconn);


    while($row=mysql_fetch_array($result)){


       ...您的操作


    }


    echo $pagecon; //输出分页导航内容


*/




if(!function_exists("pageDivide")){


#$total     信息总数


#$shownu    显示数量,默认20


#$url       本页链接


function pageDivide($total,$shownu=20,$url=''){




   #$page      当前页码


   #$sqlfirst  mysql数据库起始项


   #$pagecon   分页导航内容


   global $page,$sqlfirst,$pagecon,$_SERVER;


   $GLOBALS["shownu"]=$shownu;


   


   if(isset($_GET['page'])){


       $page=$_GET['page'];


   }else $page=1;


   


   #如果$url使用默认,即空值,则赋值为本页URL


   if(!$url){ $url=$_SERVER["REQUEST_URI"];}


   


   #URL分析


   $parse_url=parse_url($url);


   @$url_query=$parse_url["query"];    //取出在问号?之后内容


   if($url_query){


       $url_query=preg_replace("/(&?)(page=$page)/","",$url_query);


       $url = str_replace($parse_url["query"],$url_query,$url);


       if($url_query){


         $url .= "&page";


       }else $url .= "page";


   }else $url .= "?page";


   


   #页码计算


   $lastpg=ceil($total/$shownu);   //最后页,总页数


   $page=min($lastpg,$page);


   $prepg=$page-1;                 //上一页


   $nextpg=($page==$lastpg ? 0 : $page+1); //下一页


   $sqlfirst=($page-1)*$shownu;


   


   #开始分页导航内容


   $pagecon = "显示第 ".($total?($sqlfirst+1):0)."-".min($sqlfirst+$shownu,$total)." 条记录,共 <B>$total</B> 条记录";


   if($lastpg<=1) return false; //如果只有一页则跳出


   


   if($page!=1) $pagecon .=" <a href='$url=1'>首页</a> "; else $pagecon .=" 首页 ";


   if($prepg) $pagecon .=" <a href='$url=$prepg'>前页</a> "; else $pagecon .=" 前页 ";


   if($nextpg) $pagecon .=" <a href='$url=$nextpg'>后页</a> "; else $pagecon .=" 后页 ";


   if($page!=$lastpg) $pagecon.=" <a href='$url=$lastpg'>尾页</a> "; else $pagecon .=" 尾页 ";


   


   #下拉跳转列表,循环列出所有页码


   $pagecon .=" 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n";


   for($i=1;$i<=$lastpg;$i++){


       if($i==$page) $pagecon .="<option value='$i' selected>$i</option>\n";


       else $pagecon .="<option value='$i'>$i</option>\n";


   }


   $pagecon .="</select> 页,共 $lastpg 页";




}


}else die('pageDivide()同名函数已经存在!');


?>

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

(选文出自换就换网 www.weiyeying.cn  转载请注明)

相关推荐 :   linux命令


打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论