我有一个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中的有效分页吗。
这里有一个关于基本分页的教程。
http://www.phpfreaks.com/tutorial/basic-pagination
按照蒂姆说的那样做,对我来说,主要是一种糟糕的做法。在需要的时候读取所需的数据。您可以使用数组的最小-最大索引来完成此操作。假设您希望每页显示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插件在客户端完成所有操作。这个插件还为您提供了更多的选项,如排序和搜索。
http://datatables.net/
如果你有一张很大的桌子,这可能不是一个好主意。