长期潜伏者第一次提问。
我正在尝试拼凑一个分页功能,该功能将考虑项目总数并增加每页的结果以确保每个页面都被完全填充。
例如,如果我有 35 个结果并且我希望每页至少有 10 个结果,那么理想情况下每页返回 12、12 和 11 个结果。
显然我的逻辑能力很弱,因为我这辈子似乎无法理解这个看似简单的任务。令人尴尬(我问起来很痛苦),因为我已经在这里待了一个星期,我知道对此有一个简单的答案。
我不一定要寻求解决方案(尽管这将不胜感激),因为正确方向的提示可能就是我所需要的。
长期潜伏者第一次提问。
我正在尝试拼凑一个分页功能,该功能将考虑项目总数并增加每页的结果以确保每个页面都被完全填充。
例如,如果我有 35 个结果并且我希望每页至少有 10 个结果,那么理想情况下每页返回 12、12 和 11 个结果。
显然我的逻辑能力很弱,因为我这辈子似乎无法理解这个看似简单的任务。令人尴尬(我问起来很痛苦),因为我已经在这里待了一个星期,我知道对此有一个简单的答案。
我不一定要寻求解决方案(尽管这将不胜感激),因为正确方向的提示可能就是我所需要的。
假设您至少有 10 个项目(测试它):
nbPages = floor(nbItems/10)
nbItemsPerPageMax = 10 + ceil((nbItems - 10*nbPages)/nbPages)
您不需要调整最后一页,因为limit
在这种情况下,子句不需要确切的数字或项目(只需使用limit numPage*nbItemsPerPageMax, nbItemsPerPageMax
)。
你必须编写这样的查询并LIMIT
用于限制你在所有结果中显示结果的数量。
select * from table where condition LIMIT 0,12