确定项目可能位于哪个页面?

时间:2012-11-14 08:35:49

标签: php codeigniter

给定分页结果集中特定元素的MySQL主键,是否有一个函数来获取元素所在的页码?

如果没有,什么是可以帮助我到达那里的伪代码?请注意,主键可以删除,序列中会有“间隙”,因此单独的算术可能无效......

2 个答案:

答案 0 :(得分:2)

SELECT COUNT(*) as amountBefore FROM `table` WHERE `id` <= 'id'

page = ceil(amountBefore / amountPerPage)

答案 1 :(得分:2)

这样的事情:

SELECT FLOOR(POSITION/15) FROM (
    SELECT @rownum:=@rownum+1 as POSITION, id 
    FROM table_name, (SELECT @rownum:=0) r
    ORDER BY published DESC
 ) t WHERE id = 17;

(假设您的ID为17,而您的每页商品为15,而您订购的商品为published

但是请注意,任何解决方案(如果你在PHP中更是如此)都会有些浪费,因为很多数据都是临时收集的 - 如果它以任何方式可能尝试通过路由/获取参数接收当前页面/网址。