一个苦寒竹自己写的分页,早先使用的是ASP的毛虫快速分页,后来修改了分页的函数,也是自适应的,总体来说当前页在列表中间,不过还得写下CSS哦:
引用:
<ul id="list">
<?php
$sql = "select num from `sys` where id=1";//从系统表里读取条目数,同count()效果
$rs= mysql_fetch_array(mysql_query($sql));
$total=$rs[0];//调试所用总数据
$maxpage=ceil($total/$pagesize);//总页数
$page=$_GET['page'];//当前页,注意注入
if(empty($page) or $page<1)
{$page=1;}
if($page>$maxpage)
{
$page=$maxpage;
}
$offset=$pagesize*($page-1);
$sql = "select id,`title` from `content` order by id desc limit ".$offset.",".$pagesize;
$result = mysql_query($sql);
//$num = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{ echo "<li><a href=".$row['id'].".html\">".$row['title']."</a></li>";
}
echo "</ul>";
echo "共有文章:".$total."篇<br/>";
echo show_page($maxpage,5,$page,"");
Function show_page($maxpage,$pagenum,$page,$url)//分页15:24 2007-11-19\过程改为函数
{
//pagemin=page-(pagenum-6)
$temp_num=intval($pagenum/2);
$pagemin=$page-$temp_num;
if(strpos($pagenum/2,".")<>0)
{
$pagemax=$page+$temp_num;}
else{
$pagemax=$page+$temp_num-1;
}
//pagemax=page+(pagenum-5)
if($pagemin<1)
{
// pagemax=page+(pagenum-5)-pagemin+1
$pagemax=$pagenum;
$pagemin=1;
}
if($page>1)
{$show_page="<a href=\"?".$url."page=1\" class=\"P_begin\">9</a>";
}
if($pagemin>1)
{
$show_page=$show_page.("<a href=\"?".$url."page=".($page-$temp_num)."\"class=\"P_one\" title=\"前".$temp_num."页\">7</a>");
}
if($pagemax>$maxpage)
{
$pagemax=$maxpage;
if($pagenum>$maxpage)
{
$pagemin=1;
}
else
{
$pagemin=$maxpage-$pagenum+1;
}
}
for($i=$pagemin;$i<=$pagemax;$i++)
{
if($i==$page)
{
$show_page=$show_page.("<a class=\"P_do\">".$i."</a>");
}
else
{
$show_page=$show_page.("<a href=\"?".$url."page=".$i."\">".$i."</a>");
}
}// next
if($pagemax<$maxpage)
{
$show_page=$show_page.("<a href=\"?".$url."page=".($page+$temp_num)."\" title=\"后".$temp_num."页\" class=\"P_last\">›</a>");
}
if($page<$maxpage)
{
$show_page=$show_page.("<a href=\"?".$url."page=".$maxpage."\" class=\"P_end\">››</a>");
}
$show_page=$show_page."<input name=\"page\" type=\"text\" value=\"".($page+1)."\"\>页";
//$show_page=$show_page."<input type=\"button\" name=\"submit\" value=\"跳转\" onclick=\"gopage()\"\/>";
return $show_page;
}
以下为ASP函数:
引用:
Function show_page(maxpage,pagenum,page,url)'分页15:24 2007-11-19\过程改为函数
'pagemin=page-(pagenum-6)
dim temp_num
temp_num=int(pagenum/2)
pagemin=page-temp_num
if instr(pagenum/2,".")<>0 then
pagemax=page+temp_num
else
pagemax=page+temp_num-1
end if
'pagemax=page+(pagenum-5)
if(pagemin<1) then
' pagemax=page+(pagenum-5)-pagemin+1
pagemax=pagenum
pagemin=1
end if
if(pages>1) then
show_page=("<a href=""?"&url&"page=1"" class=""P_begin"">9</a>")
end if
if(pagemin>1) then
show_page=show_page&("<a href='?"&url&"page="&page-temp_num&"'class=""P_one"" title='前"&temp_num&"页'>7</a>")
end if
if(pagemax>maxpage) then
pagemax=maxpage
if pagenum>maxpage then
pagemin=1
else
pagemin=maxpage-pagenum+1
end if
end if
for i = pagemin to pagemax
if(i=page) then
show_page=show_page&("<a class=""P_do"">"& i &"</a>")
else
show_page=show_page&("<a href='?"&url&"page="&i&"'>"& i &"</a>")
end if
next
if(pagemax<maxpage) then
show_page=show_page&("<a href='?"&url&"page="&page+temp_num&"' title='后"&temp_num&"页' class=""P_last"">8</a>")
end if
if(page<maxpage) then
show_page=show_page&("<a href='?"&url&"page="&maxpage&"' class=""P_end"">:</a>")
end if
show_page=show_page&"<input name=""page"" type=""text"" value='"&page+1&"' size=""4""/>页"
show_page=show_page&"<input type=""button"" name=""submit"" value=""跳转"" onclick=""gopage()""/></div>"
End Function