我需要修复分页PHP代码的指导


I need guidance in fixing pagination PHP code

我正在研究一段为不同排序系统进行分页的代码。它适用于喜欢(排序系统)并正确输出,但不适用于标签的排序系统。

$sorting = $_GET["sorting"];
$page = $_GET["page"];
$per_page = 10;
$pages = $count_total->num_rows;
$total_pages = ceil($pages / $per_page);
if($sorting == "likes") {
    $count_total = $db2->query("SELECT * FROM likes WHERE user='$user'");
}
if($sorting == "tag") {
    $tag_name = $_GET["tag_name"];
    $count_total = $db2->query("SELECT * FROM movie_tags WHERE tag_id='$tag_name'");
}
$pages = $count_total->num_rows;
$total_pages = ceil($pages / $per_page);
$start = (($page - 1) * $per_page);

for ($number=1; $number<=$total_pages; $number++) {
    if($page == $number) {
        echo '<div class="complete_page">'.$number.'</div>';
    } else {
        $sorting = $_GET["sorting"];
        echo '<a href="?page='.$number.'&sorting='.$sorting.'"> <div class="number_page">'.$number.'</div></a>';
    }
}

这是我如何使用分页的示例:

$movie = $db2->query("SELECT * FROM movies ORDER BY likes DESC LIMIT $start, $per_page");

注意:当我回显$pages时,两个排序系统都会生成值。实际上,标签的值为 11 。为什么此值不创建分页系统。我知道这不是分页系统的问题,因为它适用于喜欢的排序系统。

要在 php 中进行分页,您只需要在查询中使用两件事。

  1. 抵消
  2. 限制

例如,对于分页,查询看起来像

Select * from table Limit 5 Offset 0

在 php 中创建逻辑,获取产品计数并更改这两个值以进行分页