MySQL PDO LIMIT

时间:2014-07-22 12:20:13

标签: php mysql pdo

我最近发现myselfe需要分页,因此我挖出了已经达到目的的旧mysql_query脚本。我试图重做它,所以它适合我当前的MySQL PDO类,但有一件事是不对的。

问题是,要找出查询将产生多少页面,我需要首先进行整个查询而不是LIMIT'ation,而不是我必须再次执行相同的查询才能限制它,感觉就像浪费资源和时间,这些查询真的很长,需要大约20个不同的过滤器来做,所以我相信我一定做错了。

有没有办法检查使用PDO在将LIMIT应用到其中的同时总共有多少行?

现在这就是我必须做的事情:

exec即此查询:

SELECT * FROM inventory WHERE
    season = ?,
    category = ?,
    code = ?,
    storage = ?,
    price > ?,
    price < ?,
    purchase_date > ?,
    purchase_date < ?,
    index_date > ?,
    index_date < ?,
    product_class = ?

并且我可以访问受感染的行,所以我可以再次执行它并附加LIMIT:

SELECT * FROM inventory WHERE
    season = ?,
    category = ?,
    code = ?,
    storage = ?,
    price > ?,
    price < ?,
    purchase_date > ?,
    purchase_date < ?,
    index_date > ?,
    index_date < ?,
    product_class = ?
    LIMIT {$BEGIN}, {$END}

提前感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

为什么不将所有查询的结果存储到数组中,并且首先只打印10,然后[11-20]。 (10是显示的任意数量的结果)

这样的东西
 for($i = ($page - 1) * 10; $i <= ($page * 10); i++)
{
  echo $result[i]['season'];
  // other things
}