论坛形式的PHP通用分页函数

来源:互联网 发布:ubuntu 10.04 源 编辑:程序博客网 时间:2024/03/29 22:07

//输入查询语句,数据库名,数据库连接,当前页号,链接字符串,列表条数,显示多少页,显示数字导航链接,类似论坛的
function getpagenav2($sql,$dbname,$db,$page,$link,$pagelistnum,$showpagenum=15)
{
/////////////////////////////////////////////////////////////////////////////
/* 通用PHP翻页函数                                                         */
/* 作者:twt326 (天地小子) 2005.10.11                                     */
/* EMAIL: twt326@163.com  QQ: 195314193                                    */
/* HTTP:http://tdhome.hlw.cn                                    */
/* 功能: 传入能够获得所有记录的SQL查询语句、数据库名、数据库连接、当前页码*/
/*       以及原网页中已经附带的参数(防止破坏原网页的参数)、每页显示条数  */
/*       以及最多显示多少个页链接 (默认显示15个页链接)                                 */
/* 示例:echo getpagenav($sql,"db_abc",$dbconn,8,"list.php?act=list&p=up",10,5)  */
/* 结果: 每页:30 条 共:162 条 page:4/6 |< 1 2 3 [4] 5 6 >|         */
/* 欢迎大家评鉴!!                开源万岁!!                            */
/////////////////////////////////////////////////////////////////////////////

$result=@mysql_db_query($dbname,$sql,$db);
$rst=@mysql_fetch_assoc($result);
$sumrows=$rst[num];//总条数
if (empty($page))
  $nowpage=1;
else
  $nowpage=$page;//当前页
$sumpage=floor($sumrows/$pagelistnum)+1;//总页数
if ($sumrows % $pagelistnum==0) $sumpage=$sumrows/$pagelistnum;
$tmphead="<a href=".$link."&page=";
$showdown="每页:$pagelistnum 条 共:$sumrows 条&nbsp;page:".$nowpage."/".$sumpage."&nbsp;".$tmphead."1>|<</a>&nbsp;";
$spage=$nowpage-floor($showpagenum/2);
if ($sumpage-$spage<$showpagenum) $spage=$sumpage-$showpagenum+1;
if ($spage<1) $spage=1;
for ($i=1;$i<=$showpagenum;$i++)
{
  if ($spage>0 && $spage<=$sumpage)
    {
   if ($spage==$nowpage)
    $showdown.="[$nowpage]&nbsp;";
   else
    $showdown=$showdown.$tmphead.$spage.">$spage</a> ";
 }
  $spage++;
}
$showdown=$showdown.$tmphead.$sumpage.">>|</a>";
return $showdown;
}
 

原创粉丝点击