一个好用的分页函数

复制代码 代码如下:

  本人原创的代码,高手看来,也许流程笨拙点,但是很实用.看者要顶啊

  /*---------------------------------------------------------------//

  * 函数说明:分页函数 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"]     记录总数

  *                                 2006.09.06 by Kevin QQ:84529890

  //----------------------------------------------------------------*/

  function page($sql,$pagesize="30"){

  global $arr,$PHP_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;

  }