[FX.php List] JSON help

david weiner 1265 at lucerneblvd.org
Thu Jan 15 18:45:41 MST 2009


I think I figured it out - I haven't tested the actual code -> chart  
part yet, but I figured out the array part (and I cleaned up the rest  
of my page that I had messed up along the way)

the trick, if I have this right, was I first needed to create an array  
for my date, then I could use that array key for my nested array (or  
whatever you call this structure).

so here's the code as I have it now, I'm going to see if I can get  
this into timecloud data and will post a complete solution for anyone  
interested.

thanks,
david

here's the rendered page:
desired array: Array
(
     [2009-1-2] => Array
         (
             [count] => 6
             [tags] => Array
                 (
                     [fruit] => 1
                     [spice] => 1
                     [nice] => 1
                     [rice] => 1
                     [lice] => 1
                     [dice] => 1
                 )

         )

)

JSON_encode of desiredArray:
{"2009-1-2":{"count":6,"tags": 
{"fruit":"1","spice":"1","nice":"1","rice":"1","lice":"1","dice":"1"}}}


and here's the php page:
<?php require_once('Connections/chart.php'); ?>
<?php
$FMP_find = clone($chart);
$FMP_find->layout = 'fragrances';
$FMP_findCriterions = array('key'=>'=='.fmsEscape($_REQUEST['id']),);
foreach($FMP_findCriterions as $key=>$value) {
     $FMP_find->AddDBParam($key,$value);
}

$FMP_k_find = clone($chart);
$FMP_k_find->layout = 'keywords';
$FMP_k_findCriterions =  
array('fragrance_key'=>'=='.fmsEscape($_REQUEST['id']),);
foreach($FMP_k_findCriterions as $key_k=>$value_k) {
     $FMP_k_find->AddDBParam($key_k,$value_k);
}

fmsSetPage($FMP_find,'FMP',100);
fmsSetPage($FMP_k_find,'FMP_k',100);

$FMP_result = $FMP_find->FMFind();
$FMP_k_result = $FMP_k_find->FMFind();


$FMP_row = current($FMP_result['data']);
$FMP_row_key = key($FMP_result['data']);
$FMP_k_row = current($FMP_k_result['data']);
$FMP_k_row_key = key($FMP_k_result['data']);



foreach( $FMP_k_result['data'] as $FMP_k_row_key=>$FMP_k_row ) {
	$php_tag[$FMP_k_row['keyword'][0]] = $FMP_k_row['one'][0];
}
foreach( $FMP_result['data'] as $FMP_row_key=>$FMP_row ) {
	$php_count = (int)$FMP_row['count_of_keywords'][0];
}
$datearray = array(
$FMP_row['date_stamp'][0] => $mydate
);
$desiredArray[key($datearray)] = array(	
	'count' => $php_count,
	'tags' => $php_tag);
?>
<pre>
desired array: <?php print_r($desiredArray) ?></pre><br />
JSON_encode of desiredArray: <pre><?php print  
json_encode($desiredArray); ?></pre><br />



On Jan 15, 2009, at 3:37 PM, Dale Bengston wrote:

> Hi David,
>
> Can you do a print_r($FMP_result) and print_r($FMP_k_result) for an  
> example, and post the resulting data that shows up on your screen?
>
> Thanks,
> Dale
>
>
> On Jan 15, 2009, at 5:12 PM, david weiner wrote:
>
>> Thanks so much!
>>
>> I'm getting dangerously close to understanding what's going on, but  
>> there's one element that's just not getting through. I can't get my  
>> date_stamp field to show up in the first array brackets. I've spent  
>> some time reading about key() but I just can't figure out how that  
>> line should be written - I've tried to break it down but I'm just  
>> not getting the concept.
>>
>> I have successfully created the following array:
>> Array
>> (
>>   [] => Array
>>       (
>>           [count] => 3
>>           [tags] => Array
>>               (
>>                   [meat] => 1
>>                   [spice] => 1
>>                   [jewel] => 1
>>               )
>>
>>       )
>>
>> )
>> Using the following code:
>> <?php require_once('Connections/chart.php'); ?>
>> <?php
>> $FMP_find = clone($chart);
>> $FMP_find->layout = 'fragrances';
>> $FMP_findCriterions = array('key'=>'='.$_GET['id'],);
>> foreach($FMP_findCriterions as $key=>$value) {
>>   $FMP_find->AddDBParam($key,$value);
>> }
>>
>> $FMP_k_find = clone($chart);
>> $FMP_k_find->layout = 'keywords';
>> $FMP_k_findCriterions = array('fragrance_key'=>'='.$_GET['id'],);
>> foreach($FMP_k_findCriterions as $key_k=>$value_k) {
>>   $FMP_k_find->AddDBParam($key_k,$value_k);
>> }
>>
>> fmsSetPage($FMP_find,'FMP',10);
>> fmsSetPage($FMP_k_find,'FMP_k',10);
>>
>> $FMP_result = $FMP_find->FMFind();
>> $FMP_k_result = $FMP_k_find->FMFind();
>>
>>
>> $FMP_row = current($FMP_result['data']);
>> $FMP_row_key = key($FMP_result['data']);
>> $FMP_k_row = current($FMP_k_result['data']);
>> $FMP_k_row_key = key($FMP_k_result['data']);
>>
>>
>>
>> foreach( $FMP_k_result['data'] as $FMP_k_row_key=>$FMP_k_row ) {
>> 	$php_tag[$FMP_k_row['keyword'][0]] = $FMP_k_row['one'][0];
>> }
>> foreach( $FMP_result['data'] as $FMP_row_key=>$FMP_row ) {
>> 	$php_count = (int)$FMP_row['count_of_keywords'][0];
>> }
>>
>> $desiredArray[$FMP_result['data'][key($FMP_result['data'])] 
>> [$FMP_row['date_stamp']]] = array(	
>> 	'count' => $php_count,
>> 	'tags' => $php_tag);
>> ?>
>> <pre>
>> <?php print_r($desiredArray) ?></pre>
>> <pre><?php print json_encode($desiredArray); ?></pre>
>> <pre><?php print $FMP_row['date_stamp'][0]; ?></pre>
>>
>>
>>
>> On Jan 15, 2009, at 7:14 AM, Gjermund Gusland Thorsen wrote:
>>
>>> Beware of Thy Array Cowboy™
>>>
>>> ;-p
>>>
>>> 2009/1/15 Jonathan Schwartz <jschwartz at exit445.com>:
>>>> Uh oh.  I'm starting to understand ggt's php shorthand. ;-)
>>>>
>>>> This is a milestone.
>>>>
>>>> J
>>>>
>>>>
>>>>
>>>> At 12:34 PM +0100 1/15/09, Gjermund Gusland Thorsen wrote:
>>>>>
>>>>> I assume what you are looking for would be something along these  
>>>>> lines:
>>>>> ---
>>>>> foreach( $rSlaveTable as $v ) {
>>>>>     $tmp[$v['type'][0]] = $v['value'][0];
>>>>> }
>>>>>
>>>>> $desiredArray[ $rParent['data'][key($rParent['data'])] 
>>>>> ['parent_date'] ] =
>>>>> array(
>>>>>     'count' => $rParent['foundCount'],
>>>>>     'tags' => $tmp;
>>>>> );
>>>>> ---
>>>>> ggt
>>>>>
>>>>> 2009/1/15 Gjermund Gusland Thorsen <ggt667 at gmail.com>:
>>>>>>
>>>>>> In order to make that array, I would have to know your current
>>>>>> Filemaker sources for the fields involved.
>>>>>>
>>>>>> ggt
>>>>>>
>>>>>> 2009/1/15 Blair Duncan <Blair.Duncan at bbdo.ca>:
>>>>>>>
>>>>>>>> From a lurker...
>>>>>>>
>>>>>>> Usually I would sit on my hands rather than replying with a  
>>>>>>> wiseass
>>>>>>> remarks
>>>>>>> such as "and this has something to do with FX/PHP in what  
>>>>>>> way???" as it
>>>>>>> is
>>>>>>> more of a php question.
>>>>>>>
>>>>>>> But then I click on the link and think, wow another cool thing  
>>>>>>> that I
>>>>>>> may be
>>>>>>> able to use someday. Good people on this list, thanks.
>>>>>>>
>>>>>>>
>>>>>>> On 14/01/09 9:38 PM, "david weiner" <1265 at lucerneblvd.org>  
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> If anyone on the list has any experience getting FX/PHP to  
>>>>>>>> output JSON
>>>>>>>> encoded data (using json_encode) - I'd like to hear from  
>>>>>>>> about it.
>>>>>>>>
>>>>>>>> I'm looking to get filemaker data into JSON for a few reasons,
>>>>>>>> primarily all chart related, and am struggling a little with  
>>>>>>>> the PHP.
>>>>>>>> For one example I'm trying to achieve an array that looks like:
>>>>>>>>
>>>>>>>> [2006-11-01] => Array
>>>>>>>>      (
>>>>>>>>          [count] => 10
>>>>>>>>          [tags] => Array
>>>>>>>>              (
>>>>>>>>                  [web] => 1
>>>>>>>>                  [search] => 1
>>>>>>>>                  [chinese] => 1
>>>>>>>>                  [food] => 1
>>>>>>>>                  [tomatoes] => 1
>>>>>>>>                  [bread] => 1
>>>>>>>>                  [restaurants] => 1
>>>>>>>>                  [japanese] => 1
>>>>>>>>                  [coffee] => 1
>>>>>>>>              )
>>>>>>>>
>>>>>>>>      )
>>>>>>>>
>>>>>>>> where [2006-11-01] = [parent_date]
>>>>>>>> [count] = field[number_of_children_for_parent_date] (portal  
>>>>>>>> rows)
>>>>>>>> [tags] => Array ( ... ) is a loop grabbing all the comma  
>>>>>>>> separated
>>>>>>>> field contents from each portal row for the parent date.
>>>>>>>>
>>>>>>>> The ultimate goal is produce a timecloud using jQuery
>>>>>>>> (http://wiki.github.com/stef/timecloud), but I think if I can  
>>>>>>>> get this
>>>>>>>> figured out, then extending FX to feed all kinds of JSON  
>>>>>>>> driven data
>>>>>>>> visualizers _should_ be doable.
>>>>>>>>
>>>>>>>> I've got some very rough code adapted from the timecloud  
>>>>>>>> delicious
>>>>>>>> sample data and would be happy to share it, but it's  
>>>>>>>> basically not
>>>>>>>> working so I'm leaving it off for now.
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>> David
>>>>>>>> _______________________________________________
>>>>>>>> FX.php_List mailing list
>>>>>>>> FX.php_List at mail.iviking.org
>>>>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Please consider the environment before printing this e-mail.
>>>>>>>
>>>>>>> This message and any attachments contain information, which  
>>>>>>> may be
>>>>>>> confidential or privileged. If you are not the intended  
>>>>>>> recipient, please
>>>>>>> refrain from any disclosure, copying, distribution or use of  
>>>>>>> this
>>>>>>> information. Please be aware that such actions are prohibited.  
>>>>>>> If you have
>>>>>>> received this transmission in error, kindly notify us by e- 
>>>>>>> mail to
>>>>>>> helpdesk at bbdo.com. We appreciate your cooperation.
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> FX.php_List mailing list
>>>>>>> FX.php_List at mail.iviking.org
>>>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> FX.php_List mailing list
>>>>> FX.php_List at mail.iviking.org
>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>
>>>>
>>>> --
>>>> Jonathan Schwartz
>>>> Exit 445 Group
>>>> jonathan at exit445.com
>>>> http://www.exit445.com
>>>> 415-370-5011
>>>> _______________________________________________
>>>> FX.php_List mailing list
>>>> FX.php_List at mail.iviking.org
>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>
>>> _______________________________________________
>>> FX.php_List mailing list
>>> FX.php_List at mail.iviking.org
>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>
>> _______________________________________________
>> FX.php_List mailing list
>> FX.php_List at mail.iviking.org
>> http://www.iviking.org/mailman/listinfo/fx.php_list
>
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list



More information about the FX.php_List mailing list