我之前一直在使用这个分页给我的其他一些项目,它们似乎有效...但是现在我正在尝试这个,它可以列出第1页上的所有内容,但是一旦我转到页面2根本没有结果(即使数据库中有超过5行可用)
这是深夜,我可能会失明,但这真的令人不安。任何关于为什么它没有在第2页上显示任何内容以及进一步的任何线索?
<?php
// Prepare pagination
$getPage = $_GET["page"];
if(isset($getPage)) { $page = $getPage; } else { $page = 1; };
$start_from = ($page-1) * 20;
// Get articles
$Listquery = $LibraryArticle->mysqli->query("SELECT * FROM site_articles ORDER BY id DESC LIMIT $start_from, 5");
while($fetchlistquery = $Listquery->fetch_array()) {
$article_content = (strlen($fetchlistquery['article_desc']) > 244) ? substr($fetchlistquery['article_desc'],0,245).'...' : $fetchlistquery['article_desc'];
?>
<div id="news_container">
<img src="<?php echo $fetchlistquery["article_img"]; ?>" class="newsbox-style" />
<div class="news-title"><?php echo $fetchlistquery["article_title"]; ?></div>
<?php echo $article_content; ?>
<div class="read-more"><a href="">Read more</a> →</div>
<br style="clear: both;">
</div>
<?php
}
// Intiate pagination
$countarticles = $LibraryArticle->mysqli->query("SELECT COUNT(id) FROM site_articles");
$row = $countarticles->fetch_row();
$total_records = $row[0];
$total_pages = ceil($total_records / 5);
echo "<div style='float:right;'>";
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=".$i."'><div class='news-pagi'>".$i."</div></a>";
}
echo "</div>";
?>
答案 0 :(得分:3)
我猜这是一个快速模式来测试数据库中只有几行的分页,但是每页只显示5行,但$start_from
正在增加$page * 20
< / p>
// Prepare pagination
$getPage = $_GET["page"];
if(isset($getPage)) { $page = $getPage; } else { $page = 1; };
$start_from = ($page-1) * 20; // <-- change to 5
// Get articles
$Listquery = $LibraryArticle->mysqli->query("SELECT *
FROM site_articles
ORDER BY id DESC
LIMIT $start_from, 5");
// or change LIMIT to 20