PHP分页函数

已经发了很多PHP分页函数了,不过我仍然要继续发,因为方法不同,也许大家会有用到
<?
//分页函数

functiongenpage(&$sql,$page_size=20)
{
global$prepage,$nextpage,$pages,$sums;//outparam
$page=$_GET["page"];
$eachpage=$page_size;
$pagesql=strstr($sql,"from");
$pagesql="selectcount(*)asids".$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";
}
//显示分页
functionshowpage()
{
global$page,$pages,$prepage,$nextpage,$queryString;//paramfromgenpagefunction
$shownum=10/2;
$startpage=($page>=$shownum)?$page-$shownum:0;
$endpage=($page+$shownum<=$pages)?$page+$shownum:$pages;

echo"共".($pages+1)."页:&nbsp;";
if($page>0)echo"<ahref=$PHP_SELF?page=0&$queryString>第一页</a>";
if($startpage>0)
echo"...<b><ahref=$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;";
elseecho"&nbsp;<ahref=$PHP_SELF?page=$i&$queryString>".($i+1)."</a>&nbsp;";
}
if($endpage<$pages)
echo"<b><ahref=$PHP_SELF?page=".($page+$shownum*2)."&$queryString>&raquo;</a></b>...";
if($page<$pages)
echo"<ahref=$PHP_SELF?page=$pages&$queryString>最后页</a>";

}
?>
调用:
<?
$sql="select*fromtable1where1orderbyiddesc";
genpage($sql);//只需要正常代码加上这一行就ok。
$result=mysql_query($sql);
while($rs=mysql_fetch_array($result))
{
//display
}

showpage();//显示页
?>

你可能感兴趣的:(sql,PHP,mysql)