我在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个结果?

最佳答案

您在请求中使用limit,并检查MySQL SELECT是否检索到良好的结果。
然后,为什么除了for以外的任何其他原因都开始0循环?
如果您的请求得到115行,则应使用此语句遍历所有行:

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


祝好运。

08-04 17:30