:: Forum >> Version 2 >>

PHP &Tree Control

I was looking for the PHP script for dynamical creation of tree control, but I was not succesful, so I made one on my own. The script I'm giving you for review is not quite nice, cause I spent some hours on it and first I thought it is built like:

Node, Item, Item, Node, Item, Item, Item... etc.

I was bid confused when I found it is first getting all nodes, and then all items :D

Ignote \n and \t if you want to, it is just to make the final code readable for debuging :D

Here it is:

<?
include('../Engine/conf.inc.php');
$connection mysql_pconnect($SQL_Server,$SQL_User,$SQL_PSWD);
mysql_select_db($SQL_DB);


function 
tree_setup($main_query)
{

    
$node_dataset mysql_query($main_query);    
    
$num_nodes mysql_num_rows($node_dataset);                        

    
$node_no 0;
    
$item_no 1;
    
    
$result_text "\t[\t\"\",\n\t\t\t\t";
    
$result_value "\t\t\t{\n\t\t\t\t".$node_no.": [";
    
    while (
$row = @mysql_fetch_array($node_dataset)) 
    {
        
        
$result_text  .= "\"".$row['ReportGroup']."\"";
        
$result_value .= $item_no;
            
        if(
$node_no+$num_nodes)
        {
            
$result_text .= ",";
            
$result_value .= ",";
        }
        else
        {
            
$result_value .= "],\n";
        }
        
$node_no++;
        
$item_no++;

        

    }
    
    
    
$node_dataset mysql_query($main_query);    
    
$num_nodes mysql_num_rows($node_dataset);    
    
    
$node_no 1;
    
    while (
$row = @mysql_fetch_array($node_dataset)) 
    {
        
$node_name $row['ReportGroup'];
        
        
$result_text  .= ",\n\t\t\t\t";
        
$result_value .="\t\t\t\t".$node_no.": [";
        
        
//echo "Select ReportName From WAIS_Reports WHERE ReportGroup = '".$node_name."' <br><br>";
        
$item_dataset mysql_query("Select ReportName From WAIS_Reports WHERE ReportGroup = '".$node_name."'");                            
        
        
$num_items mysql_num_rows($item_dataset);
        
$i 1;
        while (
$row = @mysql_fetch_array($item_dataset)) 
        {
            
$result_text .= '"'.$row['ReportName'].'"';
            
$result_value .= $item_no;
    
            if(
$i $num_items)
            {
                
$result_text .= ',';
                
$result_value .= ',';
                
$i++;
            }
            
            
$item_no++;
        }
            
        if(
$node_no $num_nodes)
        {
            
$result_value .= "],\n";
        }
        else
        {
            
$result_value .= "]\n";
        }
        
$node_no++;

    }
        echo 
"treeNodeTexts = ".$result_text."\n\t\t\t];\n\n";
        echo 
"tree = ".$result_value."\t\t\t};\n\n";
}



$SQL_tree_query "Select DISTINCT ReportGroup From WAIS_Reports";                            
tree_setup($SQL_tree_query);

?>
 
Any comments and improvements are welcome ;-)
ASJ
Saturday, October 7, 2006
PS: I wonder what would happend, if I put other tree control in place of the Item... would it create multilevel tree control or just cause error ? ;-)
ASJ
Saturday, October 7, 2006



This topic is archived.

Back to support forum

Forum search