Jump to content

Parent/child tree generator


Recommended Posts

Hey guys Im using this php script to try and help me build easy javascript lines for my site that is in asp and we do not have microsoft sql db access so it all basically has to be entered manually.

Everything right now works, script demo is http://www.intimegraphics.com/phptest/script2.html

and basically what I need to is to change

 

options[1789]=new Option("L SERIES","http://www.intimegraphics.com/category_s/14104.htm");
options[1789]=new Option("S SERIES","http://www.intimegraphics.com/category_s/14105.htm");
options[1789]=new Option("SC","http://www.intimegraphics.com/category_s/14106.htm");
options[1789]=new Option("VUE","http://www.intimegraphics.com/category_s/14107.htm")

 

To read more like this instead of 1789 1789 1789 1789 to more like 1 2 3 4 but only when its equal to 1789 1789 1789 1789

 

options[1]=new Option("L SERIES","http://www.intimegraphics.com/category_s/14104.htm");
options[2]=new Option("S SERIES","http://www.intimegraphics.com/category_s/14105.htm");
options[3]=new Option("SC","http://www.intimegraphics.com/category_s/14106.htm");
options[4]=new Option("VUE","http://www.intimegraphics.com/category_s/14107.htm")

 

I also need to change

function Year2002(aMenu){

to read from the root list of vehicles, so instead it would be

function SaturnYear2002(aMenu){

this isnt as important but would defintely like to get the first one fixed

Here is the full php script right here, if anyone can help I would really really appreciate it as Im pushing my php to the max lol

thanks

 

<?php

$nav_query = mysql_query("SELECT * FROM `cm2year` ORDER BY `catid`");
$tree = "";					// Clear the directory tree
$depth = 1;					// Child level depth.
$top_level_on = 1;			// What top-level category are we on?
$exclude = array();			// Define the exclusion array
array_push($exclude, 0);	// Put a starting value in it

while ( $nav_row = mysql_fetch_array($nav_query) )
{
$goOn = 1;			// Resets variable to allow us to continue building out the tree.
for($x = 0; $x < count($exclude); $x++ )		// Check to see if the new item has been used
{
	if ( $exclude[$x] == $nav_row['catid'] )
	{
		$goOn = 0;
		break;				// Stop looking b/c we already found that it's in the exclusion list and we can't continue to process this node
	}
}
if ( $goOn == 1 )
{
	$tree .= "Year". $nav_row['catname'] . "<br>";				// Process the main tree node
	array_push($exclude, $nav_row['catid']);		// Add to the exclusion list
	if ( $nav_row['category_id'] < 6 )
	{ $top_level_on = $nav_row['catid']; }

	$tree .= build_child($nav_row['catid']);		// Start the recursive function of building the child tree
}
}

function build_child($oldID)			// Recursive function to get all of the children...unlimited depth
{
global $exclude, $depth;			// Refer to the global array defined at the top of this script
$child_query = mysql_query("SELECT * FROM `cm3model` WHERE parentid=" . $oldID);
while ( $child = mysql_fetch_array($child_query) )
{
	if ( $child['catid'] != $child['parentid'] )
	{
		for ( $c=0;$c<$depth;$c++ )			// Indent over so that there is distinction between levels
		{ $tempTree .= " "; }
		$tempTree .= "options[" . $child['parentid'] ."]". "=new Option" . "(\"" . $child['catname'] ."\"" . "," . "\"http://www.intimegraphics.com/category_s/" . $child['catid']. ".htm\")<br>";
		$depth++;		// Incriment depth b/c we're building this child's child tree  (complicated yet???)
		$tempTree .= build_child($child['catid']);		// Add to the temporary local tree
		$depth--;		// Decrement depth b/c we're done building the child's child tree.
		array_push($exclude, $child['catid']);			// Add the item to the exclusion list
	}
}

return $tempTree;		// Return the entire child tree
}

echo $tree;

?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.