繁体   English   中英

为什么我的分页PHP代码不起作用?

[英]Why is my pagination PHP code not working?

我正在编写一段针对不同排序系统进行分页的代码。 它适用于喜欢和输出,但不适用于标签的分类系统

 $sorting = $_GET["sorting"];

$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。为什么这个值不能创建分页系统。 我知道这对于分页系统不是问题,因为它适用于喜欢的分类系统

尝试将查询更改为:

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

这将从$ start开始将行数设置为$ per_page。

您应该尝试在SQL查询中删除$ tag_name周围的2个单引号。 我的意思是:

$count_total = $db2->query("SELECT * FROM movie_tags WHERE tag_id=".$tag_name);

由于您的标签值为11,因此我相信名为tag_id的数据库列为整数。 并用这两个单引号将其与字符串/ varchar'11 '11'进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM