RE: Generate Menu based on database structure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ok, sounds good.
Any hints? I've not touched this stuff before..

Will using classes allow multiple objects to be running at the same time
making the script faster?

Cheers,
Gav


-----Original Message-----
From: graeme [mailto:graeme_foster@xxxxxxxxxxxxxxxx] 
Sent: Wednesday, 6 October 2004 7:05 PM
To: Gavin Amm
Cc: php-db@xxxxxxxxxxxxx
Subject: Re:  Generate Menu based on database structure


Hi,

Rather than writing a recursive function I'd suggest that you create a 
menu class and store each record as an object of the class. The menu 
class will have variables of id, parent, title, children, and tree. The 
children will be initialised to 0 and tree will be initialised to 1. You

will need to write a function to find any menu object given the menu's 
ID, should be easy if you store each object in an array (keyed on the
ID)

1) Read in a record and create a menu object
2) Get the parent object, using the parent variable and the find method
3) Increment the children variable in the parent menu object by one
4) Set the tree variable in the new menu object to the tree object in 
the parent object plus the value in the children object.

Now add method to display the menu items and your problem should be
solved.

Gavin Amm wrote:

>Hi guys,
>
>I need to generate a menu based on the content structure of my
database.
>
>The data is structured using an 'id' & 'parent' relationship, for eg:
>
>id
>
>parent
>
>title
>
>1
>
>0
>
>Home Page
>
>6
>
>1
>
>My Page 2
>
>9
>
>6
>
>My Page 3
>
>15
>
>9
>
>My Page 4
>
>21
>
>6
>
>My Page 5
>
>22
>
>9
>
>My Page 6
>
>23
>
>22
>
>My Page 7
>
>24
>
>22
>
>My Page 8
>
>25
>
>1
>
>My Page 9
>
>28
>
>25
>
>My Page 10
>
>I need to create a recursive loop that will create the menu. The text
in
>the brackets is what I'm trying to achieve, the rest is just for
>aesthetics & ease of reading.
>(The children of the row id=1 are the top of the menu tree, ie they
will
>be the menu categories at the top of the web page to display the menu
>when the mouse hovers over it.)
>(Each menu item, being a menu, will have a href to it's id number.)
>
>My Page 2 (Menu_1)
>    My Page 3 (Menu_1_1)
>        My Page 4 (Menu_1_1_1)
>        My Page 6 (Menu_1_1_2)
>            My Page 7 (Menu_1_1_2_1)
>            My Page 8 (Menu_1_1_2_2)
>    My Page 5 (Menu_1_2)
>My Page 9 (Menu_2)
>    My Page 10 (Menu_2_1)
>
>I just can't for the life of me get the numbering to work correctly in
>the recursion.
>I seem to get things like (1_1_2_1_2_3_1_2_3_4) which I can see the
>pattern in, but it's obviously not what I'm after..
>
>Appreciate your help.
>Thanks, Gav.
>
>
>  
>

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux