2012-03-10 4 views
0

У меня есть некоторые проблемы с разбиением на страницы. Я выполнил запрос непосредственно на моей консоли базы данных и отлично работает.Пагинация с использованием PDO с MySQL

public function method($arg, $db)//$db is a PDO connection link 
{ 
    try 
    { 
     $next = $arg * 9; 
     $top = 9; 
     $sql = "SELECT col01, col02, col03 "; 
     $sql .= "FROM table "; 
     $sql .= "ORDER BY col01 ASC "; 
     $sql .= ($next === 0)? "LIMIT ".$top : "LIMIT ".$next.", ".$top;  
     $return = $db->prepare($sql); 
     $return->execute(); 

     $return->setFetchMode(PDO::FETCH_ASSOC); 
     $this->minis = $return->fetch(); 
     return true; 
    } 
    catch(PDOExcepction $e) 
    { 
     return false; 
    } 
} 

Что я делаю неправильно?

+0

Когда вы эхо $ sql после последнего конкатенации ... что напечатано? –

+0

Это было первое, что я сделал, чтобы проверить результат запроса: SELECT col01, col02, col03 FROM table ORDER BY col01 ASC LIMIT 9 (отредактировав его до значений примера, он был протестирован с помощью $ arg = 0) – matt

+0

Фактически, я скопировал точный запрос, созданный скриптом, и вставил его в консоль mysql и выполнил его. Отлично работает! Но когда тестирование в браузере показывает только первую строку – matt

ответ

2

Вы возвращаете только первый ряд, потому что один раз вы вызываете только fetch(). Вызов в цикле и накапливать результаты в массив:

while ($row = $return->fetch()) { 
    // Append the current row onto your array 
    $this->minis[] = $row; 
} 
return true; 
+1

FetchAll Нет необходимости в цикле while в pdo. – itachi

+0

Да, но данный массив имеет больше значений, чем необходимо иногда – matt

1

PDOStatement::fetch - Выдает следующая строка из результирующего набора

http://php.net/manual/en/pdostatement.fetch.php

Вы только возвращение первый результат с одним вызовом fetch(). Вам нужно позвонить fetch, пока результатов больше не будет. Вновь прочтите примеры в руководстве.

1
$this->minis = $return->fetchAll(); 

it'l вернуть все данные в многомерном массиве.

Смежные вопросы