我最近发现自己需要分页,因此我挖出了已达到其目的的旧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}
预先感谢您的所有帮助:)
最佳答案
为什么不将所有查询的结果都存储到数组中,然后只打印10个,然后打印[11-20]。 (10是显示的任意数量的结果)
就像是
for($i = ($page - 1) * 10; $i <= ($page * 10); i++)
{
echo $result[i]['season'];
// other things
}
关于php - MySQL PDO限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24887265/