【发布时间】:2018-03-25 02:40:22
【问题描述】:
分页PHP代码:
<?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;
}
?>
它下面的HTML代码:
<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>
它显示了所有页面:
First Previous 1 2 3 4 5 6 7 8 Next Last
但是如果有很多页面就会错过。
我想显示特定数量的页面,例如 5 或 6:
First Previous 1 2 3 4 5 .. .. 8 Next Last
有可能吗?有没有一个库/插件?
【问题讨论】:
-
不需要图书馆。 for 循环中的一个简单 if 语句将决定显示或隐藏哪些页码。