我以前在我的其他一些项目中使用过这种分页,它们似乎很有效。。。然而,现在我正在尝试,它可以在第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>";
?>
我猜这是一个快速的模式,可以在数据库中只显示几行来测试分页,但每页只显示5行,但$start_from
正在按$page * 20
递增
// 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