[英]Pagination - number of pages
這是我的分頁:
if (isset(filter_input_array(INPUT_GET)["page"])) {
$page= filter_input(INPUT_GET, 'page', FILTER_SANITIZE_SPECIAL_CHARS);
} else {
$page= 1;
}
$request= "";
if (filter_input_array(INPUT_POST)) {
$request= filter_input(INPUT_POST, 'request', FILTER_SANITIZE_SPECIAL_CHARS);
} else if (isset(filter_input_array(INPUT_GET)["request"])) {
$request= filter_input(INPUT_GET, 'request', FILTER_SANITIZE_SPECIAL_CHARS);
}
數據庫:
$sql = DB::getInstance()->query("SELECT * FROM users LIMIT " . (($page* 50) - 50) . ",50");
index.php
<nav role="navigation">
<ul class="cd-pagination custom-buttons">
<li class="arrows"><a href="index.php?page=<?php
if ($page > 1) {
$prev= $page - 1;
echo escape($prev);
} else {
echo 1;
}?>&request=<?php echo escape($request) ?>">Prev</a></li>
<li class="arrows">
<a href="index.php?page=<?php echo escape(++$page); ?>&request=
<?php echo escape($request) ?>">Next</a></li>
</ul>
</nav>
像這樣工作正常,但我希望它顯示的頁面數不僅僅是上一頁/下一頁。 我在互聯網上尋找溶液,但沒有任何效果。
沒有LIMIT
查詢:
SELECT * FROM users;
從此查詢獲取行數。 我看不到您的數據庫類,所以不知道您正在使用哪種實現。 查看有關num_rows的文檔
然后,您需要執行以下操作: ceil($numRows / $numberOfResultsPerPage);
獲取頁數。
if (isset($_GET["p"])) {
$p = $_GET["p"];
} else {
$p = 1;
}
$per_page = 50
$from = ($p-1) * $per_page;
$sql = DB::getInstance()->query("SELECT COUNT(*) as total FROM users LIMIT $from,$per_page");
然后,使用總計,您可以使用ceil函數獲取頁面數
$total_pages = ceil($total / $per_page);
最后,在$ total_pages上進行分支,以將每個頁面顯示為<a href="?p=$i"></a>
元素。
希望對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.