PHP 和 mysql SELECT 限制
PHP with mysql SELECT 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...
当我做一些 modifications/tests 时,它显示奇怪的结果:
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" 但我不明白。这是我执行 modifications/test 时的结果:
(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),他给了我很多结果,而且效果很好。这是给我 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...
当我做一些 modifications/tests 时,它显示奇怪的结果:
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" 但我不明白。这是我执行 modifications/test 时的结果:
(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)
祝你好运。