下面这段代码不错。看看吧function list_pages($type,$setpage,$setid){
global $dbhost,$dbuser,$dbpasswd,$dbname,$lunwen_all_table;
global $list_num,$list_page_num,$action;if ($type>"0" && $type<"999999999"):
 $istype = "WHERE sortid=$type";
 if ($action == "wait"):
 $istype = $istype." && isshow=0";
 endif;
else:
 $type = 0;
 $istype = "";
 if ($action == "wait"):
 $istype = "WHERE isshow=0";
 endif;
endif;
mysql_connect($dbhost,$dbuser,$dbpasswd) or die ("数据库连接失败");$sql = "SELECT COUNT(*) AS rcnt FROM $lunwen_all_table $istype ORDER BY id DESC";
$result = mysql_db_query($dbname, $sql);
$row = mysql_fetch_array($result);$num = $row[rcnt];
if (empty($setid)):
$setid = 0;
endif;$sql = "SELECT * FROM $lunwen_all_table $istype ORDER BY id DESC LIMIT $setid, $list_num";
$result = mysql_db_query($dbname, $sql);
// 计算页数 
$pages = ceil($num/$list_num);
$page = ceil($pages/$list_page_num);
//150
if ($setid > 0):
$setpage1 = ceil($setid/$list_num);
$setpage = ceil(($setpage1+1)/$list_page_num);
else:
$setpage = 1;
endif;if ($pages > $list_page_num):
$pagenum = $list_page_num;
else:
$pagenum = $pages;
endif;$issetid = ceil(($setid+1)/$list_num);
$issetpage = $issetid % $list_page_num;
// 第一页
if ($setpage > 1):
echo "<a title='第一页' href='list.php?action=".$action."&type=".$type."&setpage=1&setid=0'>[1]</a>...\n";
endif;// 上一列
if ($setpage > 1):
$lastpage = $setpage-1;
$lastsetid = ($setpage-2)*$list_page_num*$list_num;
echo "<a title='上一列' href='list.php?action=".$action."&type=".$type."&setpage=".$lastpage."&setid=".$lastsetid."'>[<<]</a> - \n";
endif;// 上一页
if ($setid > 0):if ($issetpage == 1):
$newsetpage = $setpage-1;
else:
$newsetpage = $setpage;
endif;$presetid = $setid-$list_num;
echo "<a title='上一页' href='list.php?action=".$action."&type=".$type."&setpage=".$newsetpage."&setid=".$presetid."'>[<]</a> \n";
endif;// 列出页
$i1 = ($setpage-1)*$list_page_num;
for ($i=$i1; $i<($i1+$pagenum) && $i<$pages; $i++)
{
$newsetid=$list_num*$i;if (($setid/$list_num) == $i):
echo "<b><font color=red>[".($i+1)."]</font></b> \n";
else:
echo "<a href='list.php?action=".$action."&type=".$type."&setpage=".$setpage."&setid=".$newsetid."'>[".($i+1)."]</a> \n";
endif;}// 下一页
if ($pages!=0 && ($setid/$list_num+1)!=$pages && ($setid/$list_num+1)<=$pages||$setid==1):if ($list_page_num-$issetpage == 0 || $issetpage == 0):
$newsetpage = $setpage+1;
else:
$newsetpage = $setpage;
endif;$newsetid = $setid+$list_num;
echo "<a title='下一页' href='list.php?action=".$action."&type=".$type."&setpage=".$newsetpage."&setid=".$newsetid."'>[>]</a> \n";
endif;// 下一列
if ($pages!=0 && $pages>$list_page_num && $setpage<$page):
$nextpage = $setpage+1;
$nextsetid = $setpage*$list_page_num*$list_num;
echo "- <a title='下一列' href='list.php?action=".$action."&type=".$type."&setpage=".$nextpage."&setid=".$nextsetid."'>[>>]</a>\n";
endif;// 最后一页
if ($pages>$list_page_num && $setpage<$page):
$lastpage = $list_num*($pages-1);
echo "...<a title='最后一页' href='list.php?action=".$action."&type=".$type."&setpage=".$page."&setid=".$lastpage."'>[".$pages."]</a>\n";
endif;} // end list_pages

解决方案 »

  1.   

    ///////////////////////////////////////////////////////////////////////////////////
     // 链接函数,用于分页中的翻页                                                    //
     //                                                                               //
     ///////////////////////////////////////////////////////////////////////////////////
      function linked($ye,$count,$limit,$flag){
      if ($count<=$limit){
          $link = "共1页";
          return $link;
      }
      elseif(($ye=="1") or ($ye=="")){
              $ye = 1;
                $yes = ceil($count/$limit);
                $next_ye =$ye+1;
                $link="第".$ye."页/共".$yes."页&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"$php_self?$flag=$next_ye\" class=blackl>下一页</a>
               &nbsp;&nbsp;<a href=\"$php_self?$flag=$yes\" class=\"blackl\">末页</a>";
               }else{
                  $yes = ceil($count/$limit);
                  $next_ye = $ye+1;
                  $prev_ye = $ye-1;
                  if ($ye==$yes){
                  $link = "第".$ye."页/共".$yes."页&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"$php_self?$flag=1\" class=black>首页</a>&nbsp;&nbsp;<a href=\"$php_self?$flag=$prev_ye\" class=black>上一页</a>&nbsp;&nbsp;";
                  }
                  else{
                   $link = "第".$ye."页/共".$yes."页&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"$php_self?$flag=1\" class=black>首页</a>&nbsp;&nbsp;<a href=\"$php_self?$flag=$prev_ye\" class=black>上一页</a>&nbsp;&nbsp;<a href=\"$php_self?$flag=$next_ye\" class=blackl>下一页</a>
              &nbsp;&nbsp;<a href=\"$php_self?$flag=$yes\" class=\"blackl\">末页</a>";
                }
               }
               return $link;
             }
    上面函数是我自己写的,已经过无数次尝试最后改进的,参数作用为:
    $ye:页的变量名,随便取
    $count:所有的记录数
    $limit:一页显示的条数
    $flag:这个参数用于如一页中有几个地方要翻页时的标识符,把它取成与$ye相同的名字即可;