一个好用的分页函数

/*—————————————————————//
  * 函数说明:分页函数 page($sql,$pagesize="30")
  * $sql 查询语句(除limit外,可带排序或者条件限制)  
  * 如 select * from stu where time between "1" and "30";
  * $pagesize 每页的显示条数
 * ## 可输出数组$arr的值,说明如下:  
 *    $arr["first"]    首页及地址
 *    $arr["page_pre"] 上一页及地址
 *    $arr["all"]      当第几页和总页数
 *    $arr["page_next"]下一页及地址
 *    $arr["last"]     末页及地址
 *    $arr["pagelist"] 页码列表及地址,显示当前页前后4页列表
 *    $arr["query"]    语句 $arr["query"] = mysql_query($sql)
  *    $arr["nums"]     记录总数
//—————————————————————-*/
function page($sql,$pagesize="30"){
global $arr,$_SELF;
$query = mysql_query($sql);
$num = mysql_num_rows($query);
$pagecount = ceil($num/$pagesize);
$page = $_GET["page"];
if(!$page) $page=1;
if($page>$pagecount) $page = $pagecount;
$offset = ($page-1)*$pagesize;
$sql.=" limit $offset , $pagesize";
$arr["query"] = mysql_query($sql);
if($page>1){
    $page_pre = $page-1;
 $page_url = $PHP_SELF . "?page=".$page_pre;
 $arr["page_pre"] = "<a href=\"".$page_url."\">上一页|</a>\n";
}
if($page<$pagecount){
    $page_next = $page+1;
 $page_url = $PHP_SELF . "?page=".$page_next;
 $arr["page_next"] = "|<a href=\"".$page_url."\">下一页</a>\n";
}
$arr["all"] = "<font color=\"#FF0000\">".$page ."</font>/". $pagecount . "页\n";
$arr["first"] = "<a href=\"".$PHP_SELF."?page=1\">首页</a>\n|";
$arr["last"]  = "|<a href=\"".$PHP_SELF."?page=".$pagecount."\">末页</a>\n";
$plfront="";
if($page<=5 && $page>=1){
    for($i=1;$i<=9;$i++){
     $plfront.= " <a href=\"".$PHP_SELF."?page=$i\">".$i."</a>";
  }
}elseif($page>5 && $page<$pagecount-5){
    for($i=$page-4;$i<$page+5;$i++){
     $plfront.= " <a href=\"".$PHP_SELF."?page=$i\">".$i."</a>";
  }
}else{
    for($i=$pagecount-8;$i<=$pagecount;$i++){
     $plfront.= " <a href=\"".$PHP_SELF."?page=$i\">".$i."</a>";
 }
}
$arr["pagelist"] = $plfront." ";
$arr["nums"] = $num;
  }

相关博文

标签Tags:, , ,
Leave a comment

0 Comments.

Leave a Reply


[ Ctrl + Enter ]