简体   繁体   English

如何仅显示特定数量的页面而不显示所有页面?

[英]How to show only specific number of pages not all the pages?

The pagination code PHP/HTML: 分页代码PHP / HTML:

<?php

//Connecting To The DB And Fetching Number Of Rows.
$stmt = $pdo->prepare('SELECT * FROM locations');
$stmt->execute();
$count = $stmt->rowCount();
$values = $stmt->fetchAll(); 

//Check If Page Number Is Set To Specific Value.
if (isset($_GET['pageno'])) 
{
    $pageno = $_GET['pageno'];                                //Current Page Number.
    $no_of_records_per_page = 100;                           // Number Of Rows Per Page.
    $total_pages = ceil($count / $no_of_records_per_page);  //Total Number Of Pages.
    $offset = ($pageno-1) * $no_of_records_per_page;       //Starting From. 
} 

//If Page Number Not Specified The First Page Will Be Shown.
else 
{
    $pageno = 1;
}

?>


<ul class="pagination">
    //First Page.
    <li>
        <a href="?pageno=1">First</a>
    </li>
    //Previous Page.
    <li>
        <a href="<?php if($pageno <= 1){ echo '#'; } else { echo "?pageno=".($pageno - 1); } ?>">Prev</a>
    </li>
    <li>
        //Loop Through Pages.
        <?php
            for ($i=1; $i <= $total_pages ; $i++) 
            { 
                echo '<a href="?pageno='.$i.'">'.$i.'</a>';
            }
        ?>
    </li>
    //Next Page.
    <li>
        <a href="<?php if($pageno >= $total_pages){ echo '#'; } else { echo "?pageno=".($pageno + 1); } ?>">Next</a>
    </li>
    //Last Page.
    <li>
        <a href="?pageno=<?php echo $total_pages; ?>">Last</a>
    </li>
</ul>

Now It shows all the pages within the php page. 现在,它显示了php页面中的所有页面。

    ______      ______      ______     _______      ________     _______
   |      |    |      |    |      |    |      |     |       |    |      |
   |  1   |    |  2   |    |  3   |    |   4  |     |  5    |    |   6  |
   |______|    |______|    |______|    |______|     |______ |    |______|  ..

I want to show only spesific number of pages like 5 or 7 , And when I go to the following page a new page shows up like: 我只想显示特殊的页面数,例如5或7,当我转到下一页时,会显示一个新页面,如下所示:

1 2 3 4 5 .... 30  //When I Go To The First Page , 30 Is the last page.
1 . . 4 5 6 .. 30  //When I Go To Page Number 5. 
1 . . 27 28 29 30  //When I Go To The Last Page.

How to achieve that or something similar to it ? 如何实现该目标或类似目标?

if ($pageno > 4) {
    echo '<a>1st page link</a>';
    echo '...';
}  

for ($i = $pageno-3; $i <= $pageno+3; $i++) {
    if ($i <= 0 OR $i == $pageno) continue;
    if ($i > $total_pages) break;
    echo '<a>#1 page link</a>';
}

if ($pageno < $total_pages-4) {
    echo '...';
    echo '<a>last page link</a>';
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM