如何在PHP中设置分页


How set paging in PHP?

我有一个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'>&laquo;</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'>&raquo;</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/

如果你有一张很大的桌子,这可能不是一个好主意。