Разбивка на страницы с использованием PDO с MySQL - PullRequest
0 голосов
/ 10 марта 2012

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

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

Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 10 марта 2012

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

while ($row = $return->fetch()) {
  // Append the current row onto your array
  $this->minis[] = $row;
}
return true;
1 голос
/ 10 марта 2012
$this->minis = $return->fetchAll();

вернет все данные в многомерном массиве.

1 голос
/ 10 марта 2012

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

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

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

...