Re: Nested database loops and completing an unordered list....

From: Date: Fri, 02 Mar 2012 02:03:35 +0000
Subject: Re: Nested database loops and completing an unordered list....
References: 1 2 3 4 5 6 7 8  Groups: php.general 
Request: Send a blank email to php-general+get-316831@lists.php.net to get a copy of this message
On Mar 1, 2012, at 7:45 PM, Jim Lucas wrote: > On 03/01/2012 04:39 PM, Jay Blanchard wrote: >> >> On Mar 1, 2012, at 6:36 PM, Jay Blanchard wrote: >> >>> [snip]…stuff…[/snip] >>> >>> I am getting close, but I am also getting frustrated. I probably need to walk away for >>> a bit. >>> >>> I have an array of tiers…. >>> >>> Array >>> ( >>> [0] => TIER1DATA >>> [1] => TIER2DATA >>> [2] => TIER3DATA >>> [3] => BUSTIER1DATA >>> [4] => BUSTIER2DATA >>> [5] => BUSTIER3DATA >>> [6] => BUSTIER4DATA >>> ) >>> Each of the tiers which represent parents in children in pairs. TIER1DATA is the parent >>> of TIER2DATA, etc. representing 7 columns of data. Here is my code so far - any insight would be >>> valuable and extremely appreciated by me. >>> >>> function display_children($i, $child) { >>> global $dbc; >>> global $tierArray; >>> echo $i."<br />"; >>> /* retrieve children of parent */ >>> $get = "SELECT DISTINCT ". $tierArray[$i] >>> ." FROM POSITION_SETUP "; >>> $get .= "WHERE COMPANY_ID = '3' "; >>> if($i> 0) { >>> $get .= "AND " . $tierArray[$i - 1] . >>> " = '" . $child . "' "; >>> } >>> echo $get."<br />"; >>> if(!($result = mysql_query($get, $dbc))) { >>> echo mysql_errno() . "\t" . mysql_error() . "\n"; >>> exit(); >>> } >>> >>> while($row = mysql_fetch_array($result)) { >>> >>> /* indent and display the title of this child */ >>> echo str_repeat('&nbsp;',$i).$row[$tierArray[$i]]."<br >>> />\n"; >>> >>> /* get the children's children */ >>> display_children($i + 1, $row[$tierArray[$i]]); >>> } >>> } >>> >>> It does produce the right query for only the first child in each case, I cannot get it >>> to go deeper. I have just been looking at it for too long. TVMIA! >> >> Forgot to say that if I isolate any one level without recursion I get all of the results >> for that level. >> >> > > How are you calling this? What are your initial arguments? > > What does your DB schema look like? > > Can you show a brief example of the data in the table? > Dump: SELECT * FROM position_setup WHERE company_id='3' > > Can you show the output of the function above? I initialize it by calling the function like this: display_children(0, 0) Each of the tiers is located in adjacent columns in a single table tier1data, tier2data, tier 3 data……bustier1data, bustier2data….. The array retrieves only the relevant tiers for this company and that is the output of that array at the top of my example.

« previous php.general (#316831) next »