我有100个产品的列表,默认情况下细分为10个项目组。所以我的分页有10页10项。用户可以选择列表中是否显示10个或20个项目。
现在我希望如果第3页上的用户从10个项目切换到20个项目,则会根据第3页的当前第一项重新计算分页。
在项目数量之间切换后,分页现在将始终在第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
)
)
我希望能帮助你:)。