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]