PHP简单分页代码

 //SQL语句必须小写

function genpage(&$sql,$page_size=2)
{
global $prepage,$nextpage,$pages,$sums,$page;  //out param
$page = $_GET["page"];
if($page < 0 ) $page=0;
  $eachpage = $page_size;
$pagesql = strstr($sql," from ");
$pagesql = "select count(*) as ids ".$pagesql;
$conn = mysql_query($pagesql) or die(mysql_error());
if($rs = mysql_fetch_array($conn)) $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 ";
}
//显示分页
function showpage()
{
global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function
$shownum =10/2;
$startpage = ($page>=$shownum)?$page-$shownum:0;
$endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages;

echo "共".($pages+1)."页: ";
if($page>0)echo "<a href=$PHP_SELF?page=0$queryString><font font-size='12px'>首页</font></a>";
if($startpage>0)
echo " ... <b><a href=$PHP_SELF?page=".($page-$shownum*2)."$queryString>«</a></b>";
for($i=$startpage;$i<=$endpage;$i++)
{
if($i==$page)    echo " <font font-size='12px'><b>[".($i+1)."]</b></font> ";
else
echo " <a href=$PHP_SELF?page=$i$queryString><font font-size='12px'>[".($i+1)."]</font></a> ";
}
if($endpage<$pages)
echo "<b><a href=$PHP_SELF?page=".($page+$shownum*2)."$queryString>»</a></b> ... ";
if($page<$pages)
echo "<a href=$PHP_SELF?page=$pages$queryString><font font-size='12px'>尾页</font></a>";
}
在页面上你调用SQL的地方写 genpage( $sql , 20);20是页面显示条数
在要显示上一页下一页的地方写<?php showpage();?>

原文地址:https://www.cnblogs.com/booth/p/2178852.html