使用方法,请把以下代码复制到一个记事本文件里,然后把记事本改名为page.php,用php开发工具打开就可以看到效果
<?php
function genpage(&$sql,$page_size=10)
{
global $prepage,$nextpage,$pages,$sums; //out param
$page = $_GET["page"];
$eachpage = $page_size;
$pagesql = strstr($sql," from ");
$pagesql = "select count(*) as ids ".$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 ";
}
function showpages()
{
global $page,$pages,$prepage,$nextpage,$sums,$queryString; //param from genpage function
$shownum =4/2;
$page=$_GET["page"];//这个是用来接收点击的页码
$startpage = ($page>=$shownum)?$page-$shownum:0;
$endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages;
if($page>0){$page_str.="<a href=$PHP_SELF?page=0>首页</a> <a href=$PHP_SELF?page=".($page-1).$queryString.">上一页</a>";}
if($startpage>0){$page_str.= "<b><a href=$PHP_SELF?page=".($page-$shownum*2).$queryString." title='上五页'>«</a></b>";}
for($i=$startpage;$i<=$endpage;$i++)
{
if($i==$page){
$page_str.= " <b>[".($i+1)."]</b> ";
}else{
$page_str.= " <a href=$PHP_SELF?page=$i>".($i+1)."</a> ";
}
}
if($endpage<$pages){$page_str.="<b><a href=$PHP_SELF?page=".($page+$shownum*2).$queryString." title='下五页'>»</a></b>";}
if($page<$pages){$page_str.="<a href=$PHP_SELF?page=".($page+1).$queryString.">下一页</a> <a href=$PHP_SELF?page=$pages>尾页</a>";}
//分页函数调用示例:
// $sql="select * from hengbodb";
// genpage($sql,6);//分页效果,只需在sql语句下边调用此函数即可
// $queryString="name=hengbo&huaidan=duanyi";//额外参数
// showpage();//显示页码
?>
评论