On Sun, Feb 8, 2009 at 10:47 AM, Alfredo Quiroga-Villamil
<[email protected]> wrote:
>
> I have the following query:
>
> ===============================================
> $aParams = array(
> 'fields' => array(
> "ifnull(CcCall.destination, 'Total') as destination"
> ,'sec_to_time(sum(CcCall.sessiontime)) as duration'
> ,'truncate(sum(CcCall.sessionbill), 2) as charged'
> )
> ,'conditions' => $aConditions
> ,'group' => 'CcCall.destination with rollup'
> ,'limit' => 1
> );
>
> $aDestinationSummary = $this->CcCall->find('all', $aParams);
> ===============================================
>
> which returns data as follows:
>
> ===============================================
> 2009-02-07 23:52:19 Debug: Array
> (
> [0] => Array
> (
> [0] => Array
> (
> [destination] => algeria cellular algerie telecom
> [duration] => 00:01:30
> [charged] => 0.51
> )
>
> )
>
> )
> ===============================================
>
> Typically I would use Set::extract to extract the data I want and
> format it to json to be rendered by the view. However, in this
> particular case, the data is returned in such a way that doesn't at
> least at first glance allow me to use Set::extract.
>
> Questions:
>
> 1- Is there a way to format the query above in such a way that returns
> the Model Name as the sub-index for the arrays, hence allowing me to
> use Set::extract?
Cake can't know the model name here because of the use of DB
functions, hence the 2nd 0 key. The first key is the results index,
and so corresponds to Set's '{n}'. The 2nd key will always be 0. So,
for example, to extract destination you just need to do:
Set::extract($results, '{n}.0.destination');
> 2- If 1 is not possible or even if it is, Do we hae a way to just get
> the elements containing data from the array. For instance, something
> like the following:
>
> $aDestSummary = Set::extract($aDestinationSummary, '{n}');
>
I'm not sure what you mean by that, based on the example result you
posted. Perhaps you want an inner join?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---