From: Michael J. Rubinsky Date: Thu, 23 Sep 2010 15:52:20 +0000 (-0400) Subject: honor the various limit parameters. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=9d28f5fa33d80dee9fa669fa9fcc2369705dd88a;p=horde.git honor the various limit parameters. Slightly messy until the next step of moving to Horde_Db --- diff --git a/jonah/lib/Driver/Sql.php b/jonah/lib/Driver/Sql.php index 9b83256d9..fe477fd62 100644 --- a/jonah/lib/Driver/Sql.php +++ b/jonah/lib/Driver/Sql.php @@ -444,10 +444,23 @@ class Jonah_Driver_Sql extends Jonah_Driver //@TODO break; } - + $limit = 0; + if (isset($criteria['limit'])) { + $limit = $criteria['limit']; + } + if (isset($criteria['startnumber']) && isset($criteria['endnumber'])) { + $limit = min($criteria['endnumber'] - $criteria['startnumber'], $criteria['limit']); + } + $start = isset($criteria['startnumber']) ? $criteria['startnumber'] : 0; Horde::logMessage('SQL Query by Jonah_Driver_sql::_getStories(): ' . $sql, 'DEBUG'); - $results = $this->_db->getAll($sql, $values, DB_FETCHMODE_ASSOC); - + if ($limit || $start != 0) { + $rows = $this->_db->limitQuery($sql, $start, $limit, $values ); + while ($rows->fetchInto($row, DB_FETCHMODE_ASSOC)) { + $results[] = $row; + } + } else { + $results = $this->_db->getAll($sql, $values, DB_FETCHMODE_ASSOC); + } if ($results instanceof PEAR_Error) { throw new Jonah_Exception($results); }