Changeset 5637 for trunk/prototype/services/PostgreSQL.php
- Timestamp:
- 03/06/12 02:03:17 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/services/PostgreSQL.php
r5514 r5637 18 18 } 19 19 20 public function read ( $uri, $justthese = false ){20 public function read ( $uri, $justthese = false , $criteria = false){ 21 21 22 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 23 22 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 24 23 $justthese = self::parseJustthese($justthese, $map); 25 26 return $this->execResultSql( 'SELECT '.$justthese['select'].' FROM '. (Config::get($uri['concept'],'PostgreSQL.concept')) .' WHERE id = \''.addslashes( $uri['id'] ).'\'', true ); 24 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE id = \''.addslashes( $uri['id'] ).'\'') : ''; 25 26 return $this->execResultSql( 'SELECT '.$justthese['select'].' FROM '. (Config::get($uri['concept'],'PostgreSQL.concept')) .$criteria , true ); 27 27 } 28 28 … … 174 174 } 175 175 176 private static function parseCriteria( $criteria , &$map ){ 177 178 $result = ''; 176 private static function parseCriteria( $criteria , &$map , $query = '' ){ 179 177 180 178 if( isset($criteria["filter"]) && $criteria["filter"] !== NULL ) … … 190 188 * array( '=' , 'campo' , 'valor' ) 191 189 */ 192 193 $result .= 'WHERE ('.self::parseFilter( $criteria['filter'] , $map).')'; 190 $query .= ($query === '') ? 'WHERE ('.self::parseFilter( $criteria['filter'] , $map).')' : ' AND ('.self::parseFilter( $criteria['filter'] , $map).')'; 194 191 } 195 192 /* … … 200 197 { 201 198 foreach ($criteria["join"] as $i => $v) 202 $ result.= ' AND '.$i.' = '.$v.' ';199 $query .= ' AND '.$i.' = '.$v.' '; 203 200 } 204 201 205 202 if( isset($criteria["group"]) ) 206 203 { 207 $ result.= ' GROUP BY '.( is_array($criteria["group"]) ? implode(', ', $criteria["group"]) : $criteria["group"] ).' ';204 $query .= ' GROUP BY '.( is_array($criteria["group"]) ? implode(', ', $criteria["group"]) : $criteria["group"] ).' '; 208 205 } 209 206 210 207 if( isset($criteria["order"]) ) 211 208 { 212 $ result.= ' ORDER BY '.self::parseOrder( $criteria["order"], $map ).' ';209 $query .= ' ORDER BY '.self::parseOrder( $criteria["order"], $map ).' '; 213 210 } 214 211 if( isset($criteria["limit"]) ) 215 212 { 216 $ result.= ' LIMIT '. $criteria["limit"] .' ';213 $query .= ' LIMIT '. $criteria["limit"] .' '; 217 214 } 218 215 if( isset($criteria["offset"]) ) 219 216 { 220 $ result.= ' OFFSET '. $criteria["offset"] .' ';221 } 222 223 return $ result;217 $query .= ' OFFSET '. $criteria["offset"] .' '; 218 } 219 220 return $query; 224 221 } 225 222
Note: See TracChangeset
for help on using the changeset viewer.