2016-11-27 1 views
1

PHP에서 많은 결과를 얻는 요청 (mysql)을 가지고 있으며 매력처럼 작동합니다. 다음은 나에게 (115 개) 결과를 제공하는 요청의 예입니다PHP with mysql SELECT LIMIT

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 .... 
} 

문제입니다 :이 구성에서, 단지 결과를 보여줍니다 42-1 ... 내가 일부 수정/테스트 작업을 수행 할 때

, 그것은 보여줍니다 이상한 결과 : 나는했습니다

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 개의 결과가 있거나 요청에 10 개의 결과가 나오면 115 개의 결과를 표시 할 수있는 코드를 원합니다. 어떻게해야합니까? 왜 처음 42 개의 결과로 제한됩니까?

+0

정확히이 메소드'Db :: getInstance (_PS_USE_SQL_SLAVE _) -> ExecuteS'를 수행합니까? 그것은 * 및 * 모든 행을 가져 오는 쿼리를 실행합니까? –

+0

답장을 보내 주셔서 감사합니다. Prestashop에서 가져온 것 같습니다 : "ExecuteS"는 쿼리를 실행하고 모든 결과를 다차원 배열로 되돌려줍니다. – Shark34

+0

var_dump ($ rq);를 수행하면 어떻게됩니까? –

답변

0
  • 요청에 limit을 사용하고 MySQL SELECT가 좋은 결과를 검색하는지 확인하십시오.
  • 그렇다면 보다 다른 어떤 것에서 for 루프를 시작하는 이유는 무엇입니까 ?? 요청이 115 개 행을하게 될 경우
  • 당신은 그들 모두를 반복하는이 문장을 사용한다 :

    에 대한 (; $ 내가 < $ count_rq, $ I = 0 ++ $ I)

행운을 비네.