一个好用的PHP分页函数
网友原创的代码,高手看来,也许流程笨拙点,但是很实用.看者要顶啊
/*---------------------------------------------------------------// * 函数说明:分页函数 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; }