我每页显示10条记录。我目前正在使用的变量是......
$total = total number of records
$page = whats the current page I'm displaying
我把它放在我的页面顶部......
if ( $_GET['page'] == '' ) { $page = 1; } //if no page is specified set it to `1`
else { $page = ($_GET['page']); } // if page is specified set it
这是我的两个链接......
if ( $page != 1 ) { echo '<div style="float:left" ><a href="index.php?page='. ( $page - 1 ) .'" rev="prev" >Prev</a></div>'; }
if ( !( ( $total / ( 10 * $page ) ) < $page ) ) { echo '<div style="float:right" ><a href="index.php?page='. ( $page + 1 ) .'" rev="next" >Next</a></div>'; }
现在我猜(除非我没有想到什么)我每次都可以显示“上一个”链接,除非页面为“1”。如何在最后一页上显示“下一步”链接的位置?
答案 0 :(得分:2)
用以下代码替换最后一行代码:
if ($page*10 < $total) echo '<div style="float:right" ><a href="index.php?page='. ( $page + 1 ) .'" rev="next" >Next</a></div>';
答案 1 :(得分:1)
!( ( $total / ( 10 * $page ) ) < $page )
我...不认为这是正确的。
假设$total
为1000 - 然后在第99页,1000 /990 小于99,但还有另一页要显示。
您可能希望检查10 * $page
是否大于或等于$total
。
答案 2 :(得分:1)
如果有余数,则需要总计除以页数($total / 10)
和额外页面。使用ceil功能。
$page < ceil($total / 10)
答案 3 :(得分:1)
分页是在Web项目中经常出现的,通常最好在某处创建某种类,或者至少是一些便利函数,它们可以为您提供所需的一切。
这是一个函数,它将返回可能有用的字典:
function pagination($numberItems, $perPage, $currentPage) {
$numPages = ceil($numberItems/$perPage);
return array(
'numberPages' => $numPages,
'start' => ($currentPage - 1) * $perPage + 1,
'end' => min($currentPage * $perPage, $numberItems),
'hasNext' => $page != $numPages,
'hasPrev' => $page != 1
);
}
答案 4 :(得分:1)
你在最后一行有一个错误:
$totalPages = ceil( $total / 10 );
if ( $page < $totalPages ) ) { echo "<div style="float:right" ><a href="index.php?page='. ( $page + 1 ) .'" rev="next" >Next</a></div>"; }
答案 5 :(得分:1)
// lets get total number of pages here
$itemsPerPage = 10;
$totalItems = 105; // just for example
$pagesNo = ceil( $totalItems / $itemsPerPage );
// get the current page here...
$current = ( isset($_GET['page']) ) ? (int)$_GET['page'] : 1; // if page is defined, use it, instead use 1
$current = ( $current > 0 ) ? $current : 1; // if page was -1,-2... for instance, use 1
// show us 'Prev' button
echo ( $current > 1) ? "<a href='".($current-1)."'>Prev</a>" : "";
// show current page NO
echo $current;
// show 'Next' button
echo ( $current < $pagesNo) ? "<a href='".($current+1)."'>Next</a>" : "";
应该是这样的...这只是快速代码...稍后,在某个页面范围内工作(设置应在当前页码之前/之后显示多少页面...)
答案 6 :(得分:1)
听起来你需要检测你是在第一页还是最后一页,并根据这些条件“保护”代码。
if (/* not the first page */) {
// print the prev link
}
if (/* not the last page */) {
// print the next link
}
你已经有了检测page = 1的代码所以现在你只需要确定你是否在最后一页(整数除法或ceil()应该是要走的路。)
对于SQL的PHP结果页面,有一篇关于PHPFreaks http://www.phpfreaks.com/tutorial/basic-pagination
的文章很整洁