PHP从分页中删除页面0



我能够让我的分页脚本正常工作,一切都很好,除了当你转到第2页时,你可以看到一个第0页,如果你点击它,它什么都不会给你。

我需要修复我当前的代码,这样应用程序就不会显示第0页。

这是必要的代码:

 <?php
   $total_records = countRecords(); // self explanatory function called here
   $total_pages = ceil($total_records / $rec_limit);
   $adjacents = 2;
   $previousPage = $page - 1;
   $nextPage = $page + 1;
   $querystring = "";
   $start = ($page < $adjacents ? 1 : $page - $adjacents);
   $beginning = 1;
   $end = ($page > $total_pages - $adjacents ? $total_pages : $page + $adjacents);
   foreach($_GET as $key => $value)
   {
     if($key != "page") $querystring .= "$key=$value&amp;";
   }
   echo 
     '<div class="row-fluid">
      <div class="span2">'.countRecords()." total records" .'</div>
      <div class="container pagination-small">
      <ul style="margin: 3px;" class="pager">';
   echo @"<li><a href="$targetpage?page=$beginning&$querystring">First</a></li>";
   if ($left_rec < $rec_limit) 
   {
     $last = $page - 1;
     echo @"<li><a href="$targetpage?page=$previousPage&$querystring">
     Previous</a></li>";
     for($i= $start; $i <= $end; $i++)
     {
       echo @"<li  " . ((($page)==$i)? "class="active"" : "") . ">
       <a href="$targetpage?page=$i&$querystring">$i</a></li>";
     }
   }
   else if($page == 0)
   {
     for($i= $start; $i <= $end; $i++)
     {
       echo @"<li " . ((($page)==$i)? "class="active"" : "") . ">
       <a href=$targetpage?page=$i&$querystring">$i</a></li>";
     }
       echo @"<li><a href="$targetpage?page=$nextPage&$querystring">Next</a></li>";
   }
   else if ($page > 0)
   {
     $last = $page - 2;
     echo @"<li><a href="$targetpage?page=$previousPage&$querystring">
     Previous</a></li>";
     for($i= $start; $i <= $end; $i++)
     {
       echo @"<li " . ((($page)==$i)? "class="active"" : "") . ">
       <a href="targetpage?page=$i&$querystring">$i</a></li>";
     }
      echo @"<li><a href="$targetpage?page=$nextPage&$querystring">Next</a><li>";
   }
      echo @"<li><a href="$targetpage?page=$total_pages&$querystring">Last</a></li>";
   echo '<ul></div></div>';

我尽量使代码尽可能短。如果有任何错误,请注意这只是我在这里键入的打字错误。代码有效,但我的问题除外。

既然如此,有人能告诉我如何从分页中删除第0页吗?我已经做了一些研究,但我一直没有成功地将它应用到我的代码中。所以我希望有人能看看我的代码,告诉我如何修改它以使其发挥作用。

我很感激你的帮助。

提前谢谢。

逻辑缺陷:

$start = ($page < $adjacents ? 1 : $page - $adjacents);

如果你在第1页,你会得到

$start = (1 < 2 ? 1 : 1 - 2);
$start = -1; // page negative one? huh?

那么这个循环毫无意义:

foreach($_GET as $key => $value) { ... }

为什么不只是

unset($_GET['page']);
$q = http_build_query($_GET);

最新更新