PHP 与 mysql SELECT LIMIT

标签 php mysql select prestashop limit

我在 PHP 中有一个请求 (mysql),它给了我很多结果,而且效果很好。这是一个给我 115 个结果的请求示例:

public static function getInfo($start, $limit) {
 $sql = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(
  SELECT blablabla FROM blabla ORDER BY bla LIMIT $start,$limit
 );
 return $sql;
}

在我的 php 文件中,我有:

$rq = getInfo (0, 0);
$count_rq = (int)count($rq);
for ($i = 0; $i < $count_rq; ++$i) {
 .... do my things ....
}

这是问题所在:在此配置中,它仅显示结果 1 到 42...

当我做一些修改/测试时,它显示奇怪的结果:

Modification => for ($i = 42; $i < $count_rq; ++$i) {.......}
I got 0 result.

Modification => for ($i = 43; $i < $count_rq; ++$i) {.......}
I got results 43 from 115 !..

Modification => for ($i = 60; $i < $count_rq; ++$i) {.......}
I got results 60 from 115 !..

我试过修改“LIMIT”但我不明白。这是我进行修改/测试时的结果:

(i'm using for ($i = 0; $i < $count_rq; ++$i) {.......})
 Modification => $rq = getInfo (0, 20);
     I got results 1 to 20.
 Modification => $rq = getInfo (0, 50);
     I got results 1 to 42.
 Modification => $rq = getInfo (10, 0);
     I got results 1 to 42.
 Modification => $rq = getInfo (10, 30);
     I got results 11 to 40.

我不知道如何显示所有结果?我想要一个代码,当请求获得 115 个结果时可以显示 115 个结果,或者当请求获得 10 个结果时可以显示 10 个结果。我怎样才能做到这一点?为什么我仅限于前 42 个结果?

最佳答案

  • 您在请求中使用限制并检查 MySQL SELECT 是否检索到良好的结果。
  • 那么,为什么要在 0 以外的任何地方开始 for 循环??
  • 如果您的请求有 115 行,您应该使用这句话遍历所有行:

    for ($i = 0; $i < $count_rq;++$i)

祝你好运。

关于PHP 与 mysql SELECT LIMIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40829955/

相关文章:

php - Yii框架记录器: Remove the path

php - 引用 JOINed MySQL 数据,如 JSON 表

sql - 如何有条件地选择 Oracle 查询中的列

php - 从 glob() 结果中删除目录

php - 基于数据库中时间记录的打开/关闭状态

mysql - mysql 中不同的

php - 未根据数据库信息设置值

mysql - 提高MySQL选择和更新查询性能的有效方法

mysql - 从 MySQL 中智能选择

php - JavaScript mysql 接口(interface)?