如何在php分页中从页码开始?

如何在php分页中从页码开始?,php,Php,我有PHP分页,它显示了上一页和第一页的活动编号,但它不应该显示活动类。我试过使用下面的代码,对于搜索结果,URL中没有页码。如何显示当前页面的分页 $limit = 20; $total = count($_productCollection); //150 $total_pages = ceil($total / $limit); $page=1; echo "<ul class='pagination'>"; echo

我有PHP分页,它显示了上一页和第一页的活动编号,但它不应该显示活动类。我试过使用下面的代码,对于搜索结果,URL中没有页码。如何显示当前页面的分页

$limit = 20;                    
$total = count($_productCollection); //150
$total_pages = ceil($total / $limit);  
$page=1; 


    echo "<ul class='pagination'>";
echo "<li><a href='index.php?page=".($page-1)."' class='button'>Previous</a></li>"; 

for ($i=1; $i<=$total_pages; $i++) {  
    echo "<li><a href='index.php?page=".$i."'>".$i."</a></li>";
};  

echo "<li><a href='index.php?page=".($page+1)."' class='button'>NEXT</a></li>";
echo "</ul>";  
$limit=20;
$total=计数($\u productCollection)//150
$total_pages=ceil($total/$limit);
$page=1;
回声“
    ”; 回声“
  • ”;
    对于($i=1;$i
    for($i=1;$i我对您的代码做了一些小改动。它应该可以很好地工作。

    复制并粘贴下面的代码

    $limit=20;
    $total=计数($\u productCollection);//150
    $total_pages=ceil($total/$limit);
    $page=isset($\u GET['page'])?$\u GET['page']:1;//从请求或默认值1获取页面
    回声“
      ”; if($page>1)//仅当当前页面大于1时显示上一页 回声“
    • ”;
      对于($i=1;$i),当实际页面等于
      $i
      变量时,应将活动类添加到
    • 元素

      您遇到的问题是使用了
      $page
      变量static(它总是=1)。您应该从
      $\u get['page']
      变量中获取page的值

      此外,我还添加了一个条件,以检查它的第一页是否不显示上一页

      <?php
      
      $limit = 20;                    
      $total = count($_productCollection); //150
      $total_pages = ceil($total / $limit);  
      $page= isset($_GET['page']) ? $_GET['page'] : 1; ; 
      
      ?>
      
      编辑


      这段代码可以做你想做的事,但不是你应该做的。假设你有100多页。会发生什么?你显示所有的页面,所以所有的数字都显示在屏幕上。我建议使用一些
      jQuery
      库。看看这一个。它将帮助你以一种非常简单的方式实现
      prev 1 2 3…150 next

      你说的
      活动类是什么意思?
      你可以通过执行
      $\u get['page'];
      来获取当前页面,如果查询字符串中没有页面,如何显示prev 1 2 3 4…150 next$page=1。假设他说他不知道(我在url中没有页码)。然后他问(如何显示当前页面的页码)我不知道为什么它不是一个合适的答案。我确信它会在页码中突出显示数字1。@mike您是否修复了它或需要更多帮助?
      $limit = 20;                    
      $total = count($_productCollection); //150
      $total_pages = ceil($total / $limit);  
      $page= isset($_GET['page']) ? $_GET['page'] : 1; //get page from request or default 1
      
      
      echo "<ul class='pagination'>";
      
      if($page > 1) //only show prev if current page is greater than 1
         echo "<li><a href='index.php?page=".($page-1)."' class='button'>Previous</a></li>"; 
      
      for ($i=1; $i<=$total_pages; $i++) {  
          if($i == $page){
             echo "<li class='active'> <span>".$page."</span></li>";
          }else{
             echo "<li><a href='index.php?page=".$i."'>".$i."</a></li>";
          }
      
      };  
      
      if($page < $total_pages) //only show next if current page is less than total page
        echo "<li><a href='index.php?page=".($page+1)."' class='button'>NEXT</a></li>";
      
      echo "</ul>";  
      
      <?php
      
      $limit = 20;                    
      $total = count($_productCollection); //150
      $total_pages = ceil($total / $limit);  
      $page= isset($_GET['page']) ? $_GET['page'] : 1; ; 
      
      ?>
      
      <ul class="pagination">
          <?php 
              //if its first page don't show previous ( Also you need to do the same thing for last page)
              if ($page > 1) { ?>
                  <li><a href="index.php?page=<?php echo $page-1 ?>"> Previous </a></li>
      
          <?php } ?>
      
      
              <?php for ($i=1; $i<=$total_pages; $i++) {  
                  //if its active page add active variable
                  if($page == $i){
                      $class = 'active';
                  }else{
                      $class = '';
                  }
      
                  ?>
                  <li class="<?php echo $class; ?>"><a href='index.php?page=<?php echo $i ?>'><?php echo $i ?></a></li>
              <?php } ?>
          <li><a href="index.php?page=<?php echo $page + 1 ?>"> NEXT </a></li>
      
      </ul>
      
      echo '<ul class="pagination">';
      
          //if its first page don't show previous ( Also you need to do the same thing for last page)
          if ($page > 1) { 
              echo '<li><a href="index.php?page='.($page-1).'"> Previous </a></li>';
          } 
      
      
           for ($i=1; $i<=$total_pages; $i++) {  
              if($page == $i){
                  $class = 'active';
              }else{
                  $class = '';
              }
      
      
              echo '<li class="'.$class.'"><a href="index.php?page='.$i.' ">$i</a></li>';
        } 
        echo '<li><a href="index.php?page='.($page + 1).'"> NEXT </a></li>';
      
        echo '</ul>'