提问者:小点点

如何创建显示前3页和下3页的分页


我想显示一个分页,只显示最近和未来3页,但我不能得到它的工作。

下面是我当前的代码:

$stmt = MySQL::connection3()->prepare("SELECT COUNT(ID) AS TOTAL FROM products");
$stmt->execute();
$row = $stmt->fetch();
$total_pages = ceil(intval($row["TOTAL"]) / $results_per_page);

foreach (range(1, $total_pages) as $i) {
     if ($i == $page) {
          ?>
          <li class="page-item active">
               <a href="?page=<?php echo $i; ?>" class="page-link"><?php echo $i ?></a>
          </li>
          <?php
     } else {
          ?>
          <li class="page-item">
               <a href="?page=<?php echo $i; ?>" class="page-link"><?php echo $i ?></a>
          </li>
          <?php
     }
}

谢啦!


共1个答案

匿名用户

我创建了这个示例,您可以运行并使用您的代码进行调整:

<style>.active{color:green!important}</style>
<?php
echo get_pagination_links('10','100');




function get_pagination_links($current_page, $total_pages)
{
    $links = "";
    if ($total_pages >= 1 && $current_page <= $total_pages) {
         $i = max(2, $current_page - 3);
                 
        for (; $i < min($current_page + 4, $total_pages); $i++) {
            if($i==$current_page){
            $links .= "<li class='page-item active'><a href='?page=$i;' class='page-link'>$i</a></li>";   
            }else{
            $links .= "<li class='page-item'><a href='?page=$i;' class='page-link'>$i</a></li>";
            }
        }
        
    return $links;
}
}


  ?>

输出:
7-8-9-10-11-12-13
显然我没有连接数据库,因此我使用了静态结果