You are here: pls help me with logic for generating JSON from data « PHP Language « IT news, forums, messages
pls help me with logic for generating JSON from data

Posted by premrajwins on 09/26/07 15:06

thanks in advance for all guys kindly help...
we are genrating the extjs tree
content for the tree has to be fetched from MySQL and the JSON has to
be composed using php

The general format for extjs tree JSON is as below...

[{text:'A',
icon :'/new_cms/cms/ext/resources/images/accord/page_green.png',
qtip:'test',id:'1',
children:[
{text:'A_1',
icon:'/new_cms/cms/ext/resources/images/accord/page_green.png',
id:'3',
qtip:'demo',allowDelete:true,children:[]},]},]

+++++++++++++++++++++
i genrated this using following code...

This code works fine only for first level
if i insert a child to a the tree breaks up
pls help me with the correct logic
or give me the link where i can find help

++++++++++++++++++++++++++++++

The array variable $menu_name should be the text: in JSON
the tree_id will be the id: in JSON
$tree_id[] is a reference like primary key
$menu_id[] decides the tree level
if the $menu_id is 1 or 2 or 3 ..... so on without any _(underscore)
its the first level..
if $menu_id is 1_1 then its the child of 1
if $menu_id is 1_2 then its the child of 1
if $menu_id is 1_1_1 then its the child of 1_1
feel free to ask any info about the coding and other issues
===============================================

<?

$new_sub="[";
$new_sub_end="]";
$tree_content="";
$tree_array=array();

$root_node=array();

$array_count=0;
$root_count=0;

$con= mysql_connect("localhost","root","");

if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("dbname",$con);

$root = mysql_query("SELECT * FROM menu_managment_table where
menu_category='primary' ORDER BY tree_id ASC ");
$tree_content.=$new_sub;
$m=1;
while($row = mysql_fetch_assoc($root))
{

$menu_name[$m]=$row['menu_name'] ;
$menu_id[$m]=$row['tree_id'];
$tree_id[$m]=$row['menu_id'];
$m++;
}
$limit=1;
$itration=0;
for($i=1;$i<=count($menu_id);$i++ )
{
$next=1;
$str=$i;
$var= array_search($str,$menu_id);
if(!empty($var))
{
$tpm= explode('_',$str);
$tpm_limit=count($tpm);

//echo $tpm_limit."<br>";

while($tpm_limit<=$limit)
{

$sub=$str."_".$next;

$sub_var=array_search($sub,$menu_id);

if(!empty($sub_var))
{

$qtip = 'Last Modified: '.
$lastmod.'<br />Size: '.$size;

$tree_array[++
$array_count]="{text:'".$menu_name[$var]."',icon :'/
new_cms/cms/ext/resources/images/accord/
page_green.png',qtip:'test',id:'".$tree_id[$var]."',children:[";
$var=$sub_var;
$root_node[++$root_count]=
$str;
++$itration;
$str=$sub;

}else
{
$tree_array[++
$array_count]="{text:'".$menu_name[$var]."',icon:'/
new_cms/cms/ext/resources/images/accord/page_green.png',id:'".
$tree_id[$var]."',qtip:'demo',allowDelete:true,children:[]},";
$var1=rep($sub );
if($var1)
{}else{break;}
}

}
}

}

function rep($sub )
{
//echo $sub."<br>";

global $tpm,$tpm_limit,$str,$menu_id,$var;
$tpm=explode("_",$sub);
$tpm_limit=count($tpm);
if($tpm_limit>2)
{
unset($tpm[$tpm_limit-1]);
++$tpm[count($tpm)-1];
$str=join("_",$tpm);
$var= array_search($str,$menu_id);

if(empty($var))
{

if( rep($str ))
{

return true;
}
}else{
return true;
}
}else
{
return false;
}
}

for($j=1;$j<=count($root_node);$j++)
{
$key=0;
for($i=1;$i<=count($menu_id);$i++)
{
if (strncasecmp($root_node[$j],
$menu_id[$i],strlen($root_node[$j]))==0){
$key=$i;
}
}

if($key){
$tree_array[$key]=$tree_array[$key]."]},";
}

}

//var_dump($tree_array);
$tree_content= $new_sub.join('',$tree_array).$new_sub_end ;

echo $tree_content;

?>

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация