PHP中如何设置分页?

问题描述 投票:0回答:4

我有 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 中的有效分页吗?

php pagination
4个回答
1
投票

1
投票

按照蒂姆所说的那样做,在我看来,主要是一种糟糕的方法。在需要时读入所需的数据。 您可以使用数组的最小-最大索引来完成此操作。 假设您想每页显示 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


1
投票

如果

$limit
是您的页面大小,并且您添加另一个请求变量
$page
- 表示用户请求的搜索结果页面 - 您可以使用

$start = ($page-1)*$limit;
for($i=$start;$i < $start + $limit;$i=$i+1) {
  ...
}

迭代结果的“页面”。

但是当然,在结果视图级别处理分页是没有意义的。您想要限制从查询中获得的结果数量。

此外,我真的会考虑使用 PHP 框架,而不是按照您在请求中呈现的方式进行编码。您的应用程序最终可能会难以维护。


0
投票

您可以使用 jQuery 的 DataTables 插件在客户端完成所有操作。 这个插件还为您提供了更多选项,例如排序和搜索。

http://datatables.net/

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

© www.soinside.com 2019 - 2024. All rights reserved.