From 1535b76484c9dd2e0d341827664ded540b3834c0 Mon Sep 17 00:00:00 2001 From: Jordan Hall Date: Tue, 8 Aug 2017 14:30:59 +0100 Subject: [PATCH] Add ability set number of items per page on PDO source --- src/Objects/Sources/PDOSource.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Objects/Sources/PDOSource.php b/src/Objects/Sources/PDOSource.php index abb1454..fbaba48 100644 --- a/src/Objects/Sources/PDOSource.php +++ b/src/Objects/Sources/PDOSource.php @@ -17,6 +17,7 @@ class PDOSource implements SourceInterface private $fields = []; private $overrideSQL; private $joins = []; + private $perPage = 10; public function __construct(PDO $pdo, $tableName) { $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); @@ -62,6 +63,10 @@ public function setOverrideSQL($overrideSQL) { $this->fields = $this->getTableFields(); } + public function setPerPage($perPage = 10) { + $this->perPage = $perPage; + } + private function getSQL($fieldsToRetrieve) { $fieldsSQL = implode(', ', $fieldsToRetrieve); @@ -80,21 +85,19 @@ private function getSQL($fieldsToRetrieve) { return $sql; } - private function bindLimitParameters(PDOStatement $stmt, $offset, $perPage) { + private function bindLimitParameters(PDOStatement $stmt, $offset) { $stmt->bindValue(1, $offset, PDO::PARAM_INT); - $stmt->bindValue(2, $perPage, PDO::PARAM_INT); + $stmt->bindValue(2, $this->perPage, PDO::PARAM_INT); } public function getDataRows($page = 1, $fieldsToRetrieve = []) { - $perPage = 10; - - $offset = (($page-1) * $perPage); + $offset = (($page-1) * $this->perPage); $sql = $this->getSQL($fieldsToRetrieve); $stmt = $this->pdo->prepare($sql); - $this->bindLimitParameters($stmt, $offset, $perPage); + $this->bindLimitParameters($stmt, $offset); $stmt->execute();