我有 300 行(数据),每页包含 10 条记录,我需要前 10 页,然后单击下一步,然后显示下 10 页,这是我的代码:
<?php
$eu = ($start - 0);
$limit = 10;
$this1 = $eu + $limit;
$back = $eu - $limit;
$next = $eu + $limit;
if ($nume > $limit)
{
echo'<div class="pagination right">';
if ($back >= 0)
{
echo"<a href='$page_name?start=$back&o" . $_SESSION['clicked'] . "&p=$desc'>«</a>";
}
$i = 0;
$l = 1;
for ($i = 0; $i < $nume; $i = $i + $limit)
{
if ($i <> $eu)
{
echo"<a href='$page_name?start=$i&o=" . $_SESSION['clicked'] . "&p=$desc'>$l</a>";
}
else
{
echo "<a class='active'>$l</a>";
}
$l = $l + 1;
}
if ($this1 < $nume)
{
echo "<a href='$page_name?start=$next&o=" . $_SESSION['clicked'] . "&p=$desc'>»</a>";
}
echo '</div>';
}
echo '</div></div>';
?>
然后我会得到这样的回复http://app.ologie.us/app/admin/Screen.png
任何人都可以指导一下 PHP 中的有效分页吗?
按照蒂姆所说的那样做,在我看来,主要是一种糟糕的方法。在需要时读入所需的数据。 您可以使用数组的最小-最大索引来完成此操作。 假设您想每页显示 10 条记录:
$min = $page * 10; //Page is the current page
$max = $min + 10;
然后您只需循环遍历最小 - 最大索引之间的数据即可。
for($i = $min; $i < $max; $i++) {
//Echo your data like normal
}
如果您从 MySQL 收集数据,您可能需要查找
LIMIT
。
如果
$limit
是您的页面大小,并且您添加另一个请求变量 $page
- 表示用户请求的搜索结果页面 - 您可以使用
$start = ($page-1)*$limit;
for($i=$start;$i < $start + $limit;$i=$i+1) {
...
}
迭代结果的“页面”。
但是当然,在结果视图级别处理分页是没有意义的。您想要限制从查询中获得的结果数量。
此外,我真的会考虑使用 PHP 框架,而不是按照您在请求中呈现的方式进行编码。您的应用程序最终可能会难以维护。
您可以使用 jQuery 的 DataTables 插件在客户端完成所有操作。 这个插件还为您提供了更多选项,例如排序和搜索。
如果你有一张非常大的桌子,这可能不是一个好主意。