【问题标题】:help with PHP pagination帮助 PHP 分页
【发布时间】:2011-01-10 08:24:09
【问题描述】:

大家好,我正在使用分页脚本的第二部分来显示分页;

<?
if ($pageno == 1) {
   echo "<li class='previous-off'>«« İlk Sayfa</li> <li class='previous-off'>« Önceki Sayfa</li> ";
} else {
   echo " <li><a href='{$_SERVER['PHP_SELF']}?isim=$kid&sayfa=1'>«« İlk Sayfa</a></li> ";
   $prevpage = $pageno-1;
   echo "<li> <a href='{$_SERVER['PHP_SELF']}?isim=$kid&sayfa=$prevpage'>« Önceki Sayfa</a> </li>";
} // if
echo " <li class='active'>$pageno</li>";
if ($pageno == $lastpage) {
   echo " <li class='previous-off'>«« Sonraki</li> <li class='previous-off'>« Son Sayfa</li> ";
} else {
   $nextpage = $pageno+1;
   echo " <li class='next'><a href='{$_SERVER['PHP_SELF']}?isim=$kid&sayfa=$nextpage'>Sonraki »</a></li> ";
   echo " <li class='next'><a href='{$_SERVER['PHP_SELF']}?isim=$kid&sayfa=$lastpage'>Son Sayfa »»</a></li> ";
} // if
?>

就像你在这里看到的:echo " &lt;li class='active'&gt;$pageno&lt;/li&gt;"; 我只能显示第一页、上一页、活动页面、下一页、最后一页..

我的问题是:我想在活动页面附近显示更多页面.. 我该怎么做?

我的意思是分页样式现在是这样的:

FIRST PREV 1 NEXT LAST

我想要

第一个上一个 1 2 3 4 5 6 7 下一个最后

谢谢

【问题讨论】:

    标签: php mysql html pagination


    【解决方案1】:

    只需添加一个循环,从第一个页码循环到最后一个页码:

    for($page_number = 1; $page_number <= $amount_of_pages; $page_number++)
        if($page_number == $pageno)
            echo " <li class='active'>$page_number (active)</li>";
        else
            echo " <li class='active'><a href="...">$page_number</a></li>";
    

    要让这项工作发挥作用,您需要找到最大数量的项目并将其除以页面上的项目数量:

    $result = mysql_query("SELECT COUNT(*) FROM table");
    $row = mysql_fetch_row($result);
    $amount_of_items = $row[0];
    $amount_of_pages = $amount_of_items / 10; // 10 items on a page
    

    当然你需要添加一些检查和东西,这只是显示基本原理。

    【讨论】:

  • kkkkk 我的错误对不起大声笑。它工作得非常好!非常感谢你。现在我要发送最后一个版本的脚本。谢谢
  • 【解决方案2】:

    在显示上一页链接的部分和显示下一页链接的部分之间,您需要在 1 页和总页之间进行循环。

    <?php
    $currentPage = 3;
    $totalPages = 10;
    ?>
    
    <a href="">First page</a>
    <a href="">Prev page</a>
    
    <?php
    for ($i = 0; < $totalPages; $i++) {
        printf('<a href="%s?page=%d" class="%s">Page %d</a>', $_SERVER['PHP_SELF'], $i, ($i == $currentPage ? 'active' : ''), $i);
    }
    ?>
    
    <a href="">Next page</a>
    <a href="">Last page</a>
    

    【讨论】:

      【解决方案3】:
      <?
      if ($pageno == 1) {
         echo "<li class='previous-off'>«« İlk Sayfa</li> <li class='previous-off'>« Önceki Sayfa</li> ";
      } else {
         echo " <li><a href='{$_SERVER['PHP_SELF']}?isim=$kid&sayfa=1'>«« İlk Sayfa</a></li> ";
         $prevpage = $pageno-1;
         echo "<li> <a href='{$_SERVER['PHP_SELF']}?isim=$kid&sayfa=$prevpage'>« Önceki Sayfa</a> </li>";
      } // if
      for($page_number = 1; $page_number <= $lastpage; $page_number++)
      if($page_number == $pageno) {
      echo "<li class='active'>$pageno</li>";
      }
      else {
      echo "<li><a href='{$_SERVER['PHP_SELF']}?isim=$kid&sayfa=$page_number'>$page_number</a></li>";
      }
      
      if ($pageno == $lastpage) {
         echo " <li class='previous-off'>«« Sonraki</li> <li class='previous-off'>« Son Sayfa</li> ";
      } else {
         $nextpage = $pageno+1;
         echo " <li class='next'><a href='{$_SERVER['PHP_SELF']}?isim=$kid&sayfa=$nextpage'>Sonraki »</a></li> ";
         echo " <li class='next'><a href='{$_SERVER['PHP_SELF']}?isim=$kid&sayfa=$lastpage'>Son Sayfa »»</a></li> ";
      } // if
      ?>
      

      这是固定版本。工作正常。

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签