分页:第二页上没有任何内容

时间:2015-12-23 00:18:12

标签: php mysqli pagination

我之前一直在使用这个分页给我的其他一些项目,它们似乎有效...但是现在我正在尝试这个,它可以列出第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> &rightarrow;</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>";
?>

1 个答案:

答案 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