用PHP定义分页


Indefinate Pagination with PHP

我试图在底部创建分页链接,但现在它列出了每个页面,而不是一次列出五个链接。我希望它只是显示五个页面链接与箭头。以下是我目前的记录:

            <!-- Pagination -->
        <div class="pagination-centered">
            <ul class="pagination">
                <?php 
                $p = $maxPage;
                $end = ceil($pageNo / $p) * $p;
                $start = $end - $p + 1;
                if($maxPage < $end){
                    $end = $maxPage;
                }
                ?>
                <?php if($pageNo > $start){?>                   
                <li class="arrow"><a href="?page=<?php echo $pageNo - 1; ?>">&laquo;</a></li>
                <?php } ?>
                <?php
                    $pi = $start;
                    $pNo = $pageNo;
                    while ($pi<=$end) {
                        if($pi == $pageNo){
                            echo '<li class="current"><a href="">'. $pi . '</a></li>';
                        } else {
                        ?>
                        <li><a href="?page=<?php echo $pi; ?>"><?php echo $pi ; ?></a></li>
                <?php   
                       } 
                       $pi++;
                   } 
                ?>
                <?php if($pageNo < $end){ ?>
                    <li class="arrow">
                        <a href="?page=<?php echo $pageNo + 1; ?>">&raquo;</a>
                    </li>
                <?php } ?>
                <!--?php
                    $pNo = $pageNo;
                    $maxPno = $pNo + 5;
                    while ($pNo<=$maxPage && $pNo<=$maxPno) {
                        if($pNo == $pageNo){
                            echo '<li class="current"><a href="">'. $pNo . '</a></li>';
                        } else {
                        ?>
                        <li><a href="?page=<?php echo $pNo; ?>"><?php echo $pNo; ?></a></li-->
                <!--?php   
                       } 
                       $pNo++;
                   } 
                ?-->

            </ul>
        </div>
        <!-- END Pagination -->
在这方面的任何帮助将是非常感激的。另外,我不希望它在每次单击之后发出get调用,因为数据库可能非常大。而且,我不知道它最终会有多少页,因为我希望将数据库添加到其中。此外,我还创建了一个JSON文件,该文件提取可用于创建这些链接的相关数据。

你应该像这样让页面按钮在for循环中:

for($i = $current_page - 2; $i < $current_page; $i++){
    if($i > 0){
        echo "<a href='./?page=$i'>$i</a>";
    }
}
echo "<a class="current_page">$i</a>";
for($i = $current_page + 1; $i <= $current_page + 2; $i++){
    if($i <= $last_page){
        echo "<a href='./?page=$i'>$i</a>";
    }
}