【发布时间】:2016-03-29 08:34:10
【问题描述】:
我之前一直在将此分页用于我的其他一些项目,它们似乎可以工作......但是现在我正在尝试这个,它可以列出第 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>";
?>
【问题讨论】:
-
显示第二页的查询是什么?您可以转储它,还是从 MySQL 常规日志中获取它?
-
你有
$start_from = ($page-1) * 20;,所以除非你有超过40行,那么在页面2上它不会返回任何东西。我假设既然你有... LIMIT $start_from, 5"和$total_pages = ceil($total_records / 5);,你的意思是做 ``$start_from = ($page-1) * 5;` 代替。 -
谢谢@Sean。奇怪的是,我之前就尝试过,但没有任何改变,哦,好吧。
标签: php mysqli pagination