Skip to main content

Format MySQL Select into Associative Array in CakePHP



I like how CakePHP automatically loops through the results of MySQL queries and formats them in a nice map for you.





Here's a sample query that I'm using:







# Inside some model

return $this->query("



SELECT

Profile.id,

SUM( IF( HOUR(Log.event_one) > 3, 1, 0 ) ) as EventOne



FROM profiles Profile

JOIN logs Log ON Log.id = Profile.log_id



WHERE Profile.id = {$pUserId}

");







CakePHP would return a map like the following as the result:







array

0

array

'Profile'

array

'id' => 23

'0'

array

'EventOne' => 108

1

array

'Profile'

array

'id' => 23

'0'

array

'EventOne' => 42

2

...







What I'm trying to do is have the result be something like this:







array

'Profile'

array

'id' => 23



'Events'

# ^ I want to be able to specify this key

array

'EventOne' => 108







Any ideas?


Comments

Popular posts from this blog

Wildcards in a hosts file

I want to setup my local development machine so that any requests for *.local are redirected to localhost . The idea is that as I develop multiple sites, I can just add vhosts to Apache called site1.local , site2.local etc, and have them all resolve to localhost , while Apache serves a different site accordingly.