From 0aaa7d57ee994874f8921d2a15b5c95008921a25 Mon Sep 17 00:00:00 2001 From: Stephan Kasdorf Date: Fri, 6 Nov 2020 22:19:13 +0100 Subject: [PATCH] Version 0.9.5 beta - updated selectDatasetByFieldWhere with sort order and removed numeric array keys. --- core/a/mysql.db.php | 7 ++++--- core/c/pdo.php | 12 ++++++++++-- core/i/db.php | 3 ++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/core/a/mysql.db.php b/core/a/mysql.db.php index 9f93934..1bafc79 100644 --- a/core/a/mysql.db.php +++ b/core/a/mysql.db.php @@ -110,11 +110,12 @@ abstract class Db implements IDb /** * @param array $fieldWhere - * @return mixed|void + * @param false $sortOrder + * @return array|mixed */ - public function selectDatasetByFieldWhere($fieldWhere = array()) + public function selectDatasetByFieldWhere($fieldWhere = array(), $sortOrder = false) { - return Pdo::selectDatasetByFieldAndValue(self::$table['table'], $fieldWhere); + return Pdo::selectDatasetByFieldAndValue(self::$table['table'], $fieldWhere, $sortOrder); } /** diff --git a/core/c/pdo.php b/core/c/pdo.php index 6c5b22c..7f2a185 100644 --- a/core/c/pdo.php +++ b/core/c/pdo.php @@ -54,9 +54,17 @@ final class Pdo extends Mysql implements IPdo return $query->fetchAll(); } - public static function selectDatasetByFieldAndValue($tablename = self::PLACE_TABLE_NAME, $fieldAndValue = array() ) + public static function selectDatasetByFieldAndValue($tablename = self::PLACE_TABLE_NAME, $fieldAndValue = array(), $sortOrder = false ) { - $result = parent::getInstance( self::getSettingsSection() )->getConn()->query("SELECT * FROM " . $tablename . " WHERE " . $fieldAndValue['name'] . " = '" . $fieldAndValue['value'] . "';"); + if(is_array($sortOrder)) + { + $result = parent::getInstance( self::getSettingsSection() )->getConn()->query("SELECT * FROM " . $tablename . " WHERE " . $fieldAndValue['name'] . " = '" . $fieldAndValue['value'] . " ORDER BY ".$sortOrder['field']." ". $sortOrder['order'] ."';"); + } + else + { + $result = parent::getInstance( self::getSettingsSection() )->getConn()->query("SELECT * FROM " . $tablename . " WHERE " . $fieldAndValue['name'] . " = '" . $fieldAndValue['value'] . "';"); + } + $result = $result->fetchAll(); $resultset = []; if(array_key_exists(0, $result)) diff --git a/core/i/db.php b/core/i/db.php index 841d2d2..a4d3e4b 100644 --- a/core/i/db.php +++ b/core/i/db.php @@ -66,9 +66,10 @@ interface IDb * @desc will return a result array from the searched where field from the database * containing the entire dataset rows * @param array $fieldWhere + * @param false $sortOrder * @return mixed */ - public function selectDatasetByFieldWhere( $fieldWhere = array() ); + public function selectDatasetByFieldWhere( $fieldWhere = array(), $sortOrder = false ); /** * @desc selects a row by the fieldname and the given value, should be