以下代码是我在搜索结果中用于分页的代码。在生成搜索结果后,我的代码将以以下格式显示结果:“START PREVIOUS 1 2 3 4 5 6 7 8 9 10 NEXT”。我想要的只是分页中的指针不是要放出10个元素。例如,如果搜索结果产生11页,那么我的分页格式就像这样“START PREVIOUS 2 3 4 5 6 7 8 9 10 11 NEXT”(从第2页开始)如果我按10查看第10页。我尝试过stackoverflow中的一些例子,但对我来说不起作用。 这是我的代码:
<?php
$prev = $page - 1;
$next = $page + 1;
if($prev > 1)
echo"<a href='?value=$value'>Start</a> ";
if($prev > 0)
echo"<a href='?value=$value&page=$prev'>previous</a> ";
$number=1;
for($number; $number<=$num_pages; $number +=1)
{
if($page==$number)
echo"<b> [$number] </b>";
else
echo"<a href='?value=$value&page=$number'> $number </a>";
}
if($page < ceil($num_rows/$per_page))
echo"<a href='?value=$value&page=$next'>next</a> ";
答案 0 :(得分:0)
不是从1开始的数字,而是从$ page开始,并将其限制为10或达到最大值。
$prev = $page - 1;
$next = $page + 1;
if($prev > 1)
echo"<a href='?value=$value'>Start</a> ";
if($prev > 0)
echo"<a href='?value=$value&page=$prev'>previous</a> ";
for($number = 0; $number < 10 && ($number + $page) < $num_pages; $number +=1)
{
if($number = 1)
echo"<b> [$page] </b>";
else
echo"<a href='?value=$value&page=" . ($number + $page) . "'> " . ($number + $page) . " </a>";
}
if($page < ceil($num_rows/$per_page))
echo"<a href='?value=$value&page=$next'>next</a> ";
这样,除非没有更多页面,否则它将始终被选择为页面+10。
示例(如果只有12页)
1...10
2...11
3...12
4...12
5...12
据说,在我看来,这是一种可怕的做法。有很多优秀的PHP库/类可以更好地完成它并使它成为通用的#34;因此,您不必为每个已分页的页面编写此代码。