【发布时间】:2017-04-03 05:10:45
【问题描述】:
我正在为某人创建一个页面,它将显示数据库中的所有订单,每页限制为 10 个。
它为此工作,但现在问题是当我尝试使用以下代码获取最大页数时:
$msql = "SELECT * FROM orders";
$mresult = $db->query($msql);
if(is_object($mresult) && $mresult->num_rows > 0)
{
if($mresult->num_rows > 10)
{
$maxpage = $mresult->num_rows / 10 + 1;
}
else
{
$maxpage = 1;
}
}
它不会将 $maxpage 变量设置为 1 以外的任何值,除非数据库中有 20 个或更多订单。
目前,我在数据库中有 11 个测试订单,所以当它除以 10 时,它应该将最大页数设置为 1,+ 1 个附加页,因为有超过 10 个订单。
我在网上搜索了一个解决方案,但空手而归。有什么想法或建议吗?
编辑:
在表格底部添加代码,显示实际订单以供进一步故障排除:
<tr>
<td colspan="2" align="left"><a href="orders?start=<?php if($page == 1) { echo 0; } else { echo $start - 10; } ?>&page=<?php if($page == 1) { echo 1; } else { echo $page - 1; } ?>"><<<<</a> Prev</td>
<td align="center">Page <?php if(isset($_GET['page'])) { echo $_GET['page'] . ' of ' . $maxpage; } else { echo '1 of 1'; } ?></td>
<td colspan="2" align="right">Next <a href="orders?start=<?php if($page <= $maxpage) { echo 0; } else { echo $start + 10; } ?>&page=<?php if($page < $maxpage) { echo $page + 1; } else { echo $page; } ?>">>>>></a></td>
</tr>
【问题讨论】:
-
据我所知,
(11 / 10 + 1)在 PHP 中是2。其实我看不出你的逻辑有什么问题。