Changeset 6528 for trunk/prototype/services/PostgreSQL.php
- Timestamp:
- 06/15/12 17:00:17 (12 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property
svn:mergeinfo
set to
/sandbox/2.4.1-3 merged eligible
-
Property
svn:mergeinfo
set to
-
trunk/prototype/services/PostgreSQL.php
r6299 r6528 40 40 */ 41 41 42 use prototype\api\Config as Config; 43 42 44 class PostgreSQL implements Service 43 45 { … … 87 89 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 88 90 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE '.$map['id'].' = \''.addslashes( $uri['id'] ).'\'') : ' WHERE '.$map['id'].' = \''.addslashes( $uri['id'] ).'\''; 91 89 92 return $this->execSql('UPDATE '.(Config::get($uri['concept'],'PostgreSQL.concept')).' '. self::parseUpdateData( $data ,$map).$criteria); 90 93 } … … 197 200 $val[] = '\''.addslashes($v).'\''; 198 201 } 199 200 return '('.implode(',', $ind).') VALUES ('.implode(',', $val).') RETURNING '.$map['id'].' as id'; 202 return '('.implode(',', $ind).') VALUES ('.implode(',', $val).') RETURNING '.$map['id'].' as id'; 201 203 } 202 204 … … 244 246 $query .= ' GROUP BY '.( is_array($criteria["group"]) ? implode(', ', $criteria["group"]) : $criteria["group"] ).' '; 245 247 } 246 248 247 249 if( isset($criteria["order"]) ) 248 250 { 249 $query .= ' ORDER BY '.self::parseOrder( $criteria["order"], $map ).' '; 250 } 251 //Verificar se os atributos para o ORDER BY serao ordenados em ordem decrescente [DESC] 252 $orderDesc = ( isset($criteria["orderDesc"]) && count($criteria["order"]) == count($criteria["orderDesc"]) ) ? $criteria["orderDesc"] : false; 253 254 $query .= ' ORDER BY '.self::parseOrder( $criteria["order"], $map, $orderDesc ).' '; 255 256 } 257 251 258 if( isset($criteria["limit"]) ) 252 259 { … … 339 346 } 340 347 341 private static function parseOrder($order , &$map)348 private static function parseOrder($order , &$map, $orderDesc=false) 342 349 { 343 350 344 351 if($notArray = !is_array($order)) //Caso seja um full select pegar todas as keys 345 352 $order = array( $order ); 353 354 //Caso seja feita ordenacao em ordem descrescente 355 //concatenar DESC em cada atributo 356 if($orderDesc !== false){ 357 if(!is_array($orderDesc)){ 358 $orderDesc = array( $orderDesc ); 359 } 360 361 for($i=0; $i<count($order); $i++){ 362 $order[$i] .= ($orderDesc[$i] === true) ? ' DESC' : ''; 363 } 364 } 346 365 347 366 $return = array(); … … 356 375 return ( $notArray ? $order[0] : implode(', ', $order) ); 357 376 } 377 358 378 } 359 379
Note: See TracChangeset
for help on using the changeset viewer.