我从数据库中获取用户名和ID。我有超过500个用户名。我必须只显示1到5的分页编号和最后的分页编号。
示例: - 分页编号为: - 1 2 3 4 5 ... 20(最后一个编号)。
现在我正在横向收集所有数字。你能帮帮我吗?
任何人都可以帮助我进行NEXT和LAST的分页吗?
include('../db/connection.php');
$reclimit = 3;
if(isset($_GET['page'])){
$page = $_GET['page'];
} else {
$page = 1;
}
$start = (($page-1) * $reclimit);
$sql = "SELECT * FROM request";
$records =$conn->query($sql);;
$total = $records->num_rows;
$tpages = ceil($total / $reclimit);
$search_sql="SELECT * FROM request LIMIT ".$start."," .$reclimit;
$search_result = $conn->query($search_sql);
HTML
<body>
<?php
if (isset($search_result->num_rows) > 0) {
?>
<h2 class="result-title">Results matching your need</h2>
<?php
while($search_ok = $search_result->fetch_assoc()) {
$user_id=$search_ok['Id'];
$user_name=$search_ok['Name'];
echo "
<div class='search-section'>
<div class='search-profile'>
<div class='s_user_id'>{$user_id}</div>
<div class='s_user_name'>{$user_name}</div>
</div>
</div>
";
}}
for($i=1;$i<=$tpages;$i++) {
echo "<a href=page.php?page=".$i.">".$i."</a>";
}
?>
</body>
答案 0 :(得分:0)
您使用的分页很简单且有效。但是你正在搜索的分页是聪明的方式,你应该通过使用一些if条件来实现这一点。 SO中也有类似的答案。转到下面,这可能对您有所帮助
答案 1 :(得分:0)
这是一个简单的想法,但我没有测试它。编辑显示数字的foreach:
$pgStart = 1;
if (isset($_GET['page'])) { // get first showing number = current page - 2
$pg = $_GET['page'] - 2;
$pgStart = $pg + 5 > $tpages ? $tpages - 4 : $pg; //EDIT fix when reach pages end
$pgStart = $pg < 1 ? 1 : $pg; // This must be after ending correction (previous line)
}
if ($pgStart > 1) { // show 1
echo '<a href=page.php?page="1">1</a> ... ';
}
for($i = $pgStart; $i <= $tpages && $i < $pgStart + 5; $i++) { // show 5 pages
echo ' <a href=page.php?page="'.$i.'">'.$i.'</a> ';
}
if ($i < $tpages) { // show last
echo ' ... <a href=page.php?page="'.$tpages.'">'.$tpages.'</a>';
}
修改强>
来自php沙箱的$_GET['page'] = 7
和$tpages = 20
此脚本的输出是(没有换行符):
<a href=page.php?page="1">1</a> ...
<a href=page.php?page="5">5</a>
<a href=page.php?page="6">6</a>
<a href=page.php?page="7">7</a>
<a href=page.php?page="8">8</a>
<a href=page.php?page="9">9</a>
... <a href=page.php?page="20">20</a>