我的PHP代码提取数据如下:
$start = (isset($_GET['start']) ? (int)$_GET['start'] : 0);
$result = mysqli_query($con,"SELECT * FROM menuitem LIMIT $start, 4");
if (!$result) {
printf("Error: %s\n", mysqli_error($con));
exit();
}
我的数据显示每页限制为4。 我创建了一个“下一个”和“上一个”链接,显示下一个或前四个项目。
echo "<table width=\"1024\" align=\"center\" >";
echo "<tr height=\"50\"></tr>";
$prev = $start - 4;
echo '<td><a href="?start=' . $prev . '">Previous Items</a></td>';
$next = $start + 4;
echo '<td><a href="?start=' . $next . '">Next Items</a></td>';
echo "</table>";
我遇到的问题是“下一个项目”按钮不断超过我在数据库中的项目数。我需要限制这个和“以前的项目”,所以“下一个项目”链接不会超出我的数据库,并且“以前的项目”不会转到负数。我不知道该怎么做。有什么想法吗?
答案 0 :(得分:1)
使用
获取行数SELECT COUNT(*) FROM menuitem
仅在显示链接时显示链接
$prev = $start - 4;
if ($prev >= 0) {
echo '<td><a href="?start=' . $prev . '">Previous Items</a></td>';
}
$next = $start + 4;
if ($next < $count) {
echo '<td><a href="?start=' . $next . '">Next Items</a></td>';
}
答案 1 :(得分:0)
您可以在第一次没有限制的情况下运行查询,用SELECT COUNT()替换SELECT *并获取条目数。然后在运行查询时,如果$ start + 4&gt; count,不显示Next按钮,如果$ start&lt; 1不显示上一个按钮。