I really appreciate it guys, for some reason I didn't try this:
Set::extract($aDestinationSummary, '{n}.0');
That extracts exactly the set I want, I knew there had to be a simple,
clean way to get it but didn't try that for some reason.
Thanks so much for the help.
Alfredo
On Sun, Feb 8, 2009 at 2:32 PM, brian <[email protected]> wrote:
>
> 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
-~----------~----~----~----~------~----~------~--~---