Yes, I know what a tree data structure is - how to
"walk the tree" I'm not sure what you mean. But I've
come up with something quite cool. but still not
working.

I select all the data from the catagories table [id |
pid | category] and drop it into the array

===== 
$menu = array();

while ($row = mysql_fetch_array($result)) {
        $id = $row['cat_id'];
        $category = $row['category'];
        $pid = $row['pid'];
        
        $menu[$pid][$id] = $category;
}


foreach($menu as $key1 => $value1) {
    echo "Key: $key1; Value: $value1<br>\n";
   foreach ($value1 as $key2 => $value2) {
          echo "Key: $key2; Value: $value2<br>\n";
                // delete array that has been printed
                unset($menu[$key1][$key2]);
                } 
}
===== 

and out comes:
Key: 0; Value: Array
Key: 1; Value: Automotive
Key: 4; Value: Technology
Key: 1; Value: Array
Key: 2; Value: Repair Shops
Key: 3; Value: Glass Replacement
etc..

So now what i need is the ability to go thru all of
the menu array with index of $menu[0][*] one at a time
and then print out all $menu indicies where [*]
matches $menu[THIS][]
the unset removes a category once it's been printed

Any ideas?
I don't want to recursively hit the database a bunch
of times.

Thanks,
olinux

--- DL Neil <[EMAIL PROTECTED]> wrote:
> 
> ----- Original Message ----- 
> From: "olinux" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: 29 October 2001 08:16
> Subject: [PHP-DB] category structure
> 
> 
> > anyone have any ideas on this 
> > 
> > I have a table of directory categories 
> > id | parentid | category
> > 
> > so...
> >  1 | 0 | blah1   top
> >  2 | 1 | blah2   sub
> >  3 | 1 | blah3   sub2
> >  4 | 3 | blah4   sub2->sub
> > 
> > I want to hit the DB only once so i select all and
> > drop into array
> > 
> > Now i've created array with these like so:
> > $category[$parentid][$id]
> > 
> > But now what?
> > 
> > trouble is that 
> > $msub[2][4] is a sub category of $msub[1][2]
> > so i can't just run thru and print the array -
> need to
> > manipulate a little.
> > 
> > Any ideas? [or even a beeter way to do this?] 
> 
> Olinux,
> 
> What you are asking is a fairly common requirement,
> with well-known solutions.
> In what format do you require the output printed?
> Do you know what a "tree" data structure is, and how
> to 'walk the tree'?
> 
> =dn
> 


__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to