私は、さまざまなソートシステムのページ設定を行うコードを開発中です。 が好きで、が正しく出力されますが、タグのソーティングシステムでは機能しません。ページ区切りのPHPコードが機能しないのはなぜですか?
$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");
これは開始$から始まっPER_PAGE $に行の量を設定する必要があります。
[ちょうど '/?page = somesqlinjectionhere'を訪問することは非常に不幸になることを知っておくべきだと思っていました。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in -php) – Marty
真。 SQLインジェクションなどのセキュリティは、チームの開発者が最終的に行う予定です。私は今このプロジェクトのソロ開発者です... –
最後まで明白で重大なセキュリティ問題を残すことはお勧めしません。 – Marty