PHP + MySql分类与没有偏移

时间:2014-04-02 00:58:11

标签: php mysql pagination

我正在与在线市场网站合作,用户可以在这里销售他们自己的东西,访问者可以按类别浏览市场。

我一直在阅读关于mysql分页的问题,如果你使用limit和offset,它将使用很多资源,并且如果它的庞大数据库需要很长时间才能执行。

所以,我不想使用“LIMIT 10000,20”作为例子,只有最后一次选择。

如果没有类别,这样做会很好 “SELECT * FROM products WHERE id> 10000 LIMIT 20”

但是,由于涉及的产品类别,我不能使用它。 假设在整个数据库中有2000个产品之后添加了添加到类别ID 10的第一个产品。该产品将获得ID 2001。

因此,如果我要浏览类别ID 10的第一页,则此查询将运行: “SELECT * FROM products WHERE catid = 10 LIMIT 20”

如果我转到下一页,则会运行: “SELECT * FROM products WHERE catid = 10 AND id> 20 LIMIT 20”

因此,基本上访问者会在每个页面中看到产品2001,直到他在查询查找ID超过2020的产品时访问第101页,这就是为什么我不能在查询中使用“WHERE id> something”。

长话短说,在处理类别时最好的处理分页的方法是什么,并没有吃那么多的表现?

1 个答案:

答案 0 :(得分:0)

我认为在您的情况下,您可以简单地运行此查询,例如:

"SELECT * FROM products WHERE catid = 10"

在返回这么多行之后,使用jquery数据表在客户端控制它。 https://datatables.net/

这是我目前正在使用的,因为它非常快。当你移动到你的分页的另一页时,不再需要查询