在更改项目数量后重新计算第一个项目的分页

时间:2018-03-18 09:50:52

标签: php pagination

我有100个产品的列表,默认情况下细分为10个项目组。所以我的分页有10页10项。用户可以选择列表中是否显示10个或20个项目。

现在我希望如果第3页上的用户从10个项目切换到20个项目,则会根据第3页的当前第一项重新计算分页。

在项目数量之间切换后,分页现在将始终在第1页开始。

不幸的是我无法弄清楚最好的计算是什么。

1 个答案:

答案 0 :(得分:1)

我会使用方法Paginator创建一个getData($limit, $page)类。

关于用户的选择,当前$_GET的{​​{1}}或$_POST参数以及所需的$page被赋予$limit方法。

然后我会从数据库中读取所需的行数并将其存储在getData($limit, $page)中。 (始终以上一个项ID 开头,并将其限制为用户想要查看的行数。如果SQL中为$result,则用户想要查看30行)

之后,读出刚刚从数据库中提取的最后一行的ID( limit 30 )。将该ID存储在$result之类的var中。现在,您从刚从$lastid数组的最后一项收到的$lastid开始。然后从数据库中提取下30个项目。

我会将页面存储在多维数组

$result

这给你一个像:

这样的结构
$pages = array("0"=>array(item1, item2, ... item30),"1"=>array(item31, item32, ... item 60), ...)

要显示我所知道的项目,只需使用foreach循环生成页面标签。

Array
(
    [0] => Array
        (
            [0] => item1
            [1] => item2
            [2] => item3
            ...
            [29] => item30
        )

    [1] => Array
        (
            [0] => item31
            [1] => item32
            ...
            [29] => item60
        )
)

我希望能帮助你:)。