81 {
83 'items' => array(),
84 'cnt' => 0
85 );
86
93
94 if(isset($params['limit']))
95 {
96 if(!is_numeric($params['limit']))
97 {
98 throw new InvalidArgumentException('Please provide a valid numerical limit.');
99 }
100
101 if(!isset($params['offset']))
102 {
103 $params['offset'] = 0;
104 }
105 else if(!is_numeric($params['offset']))
106 {
107 throw new InvalidArgumentException('Please provide a valid numerical offset.');
108 }
109
110 $this->db->setLimit($params['limit'], $params['offset']);
111 }
112
113 $where = strlen($where) ? 'WHERE ' . $where : '';
114 $query =
"SELECT {$select} FROM {$from} {$where}";
115
116 if(strlen($group))
117 {
118 $query .=
" GROUP BY {$group}";
119 }
120
121 if(strlen($having))
122 {
123 $query .=
" HAVING {$having}";
124 }
125
126 if(strlen($order))
127 {
128 $query .=
" ORDER BY {$order}";
129 }
130
132 while(
$row = $this->db->fetchAssoc(
$res))
133 {
135 }
136
137 if(isset($params['limit']))
138 {
139 $cnt_sql = "SELECT COUNT(*) cnt FROM ({$query}) subquery";
140 $row_cnt = $this->db->fetchAssoc($this->db->query($cnt_sql));
141 $data[
'cnt'] = $row_cnt[
'cnt'];
142 }
143
145 }
getWherePart(array $params, array $filter)
getOrderByPart(array $params, array $filter)
getSelectPart(array $params, array $filter)
getGroupByPart(array $params, array $filter)
getFromPart(array $params, array $filter)
getHavingPart(array $params, array $filter)