[PHP] Menustructuur met meerdere lagen uitbeelden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Ik heb dus een Mysql-tabel (mos_menu) met daarin menu-items (Mambo voor de geintresseerden) en daarin staand de volgende cellen die betrekking hebben op de hierarchy.
ID, Parent

Het is dus logisch dat je met parent het bovenliggende item aangeeft en als parent=0, dan is het een hoofditem.

Wat ik nu wil is met een simpel script de hierarchy uitbeelden op de volgende manier:
Item 1
---- Sub 1
---------Sub 1.1
Item 2
etc.
etc.

Nu ben ik hier al even mee bezig geweest, maar ik kan geen echte efficiente manier verzinnen en ik kan me voorstellen dat dit al veel vaker gedaan is, maar kan het nergens echt vinden. De items moeten in de goede volgorde staan (dus geordend naar id).

Heeft iemand misschien een oplossing?

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

Verwijderd

Nee dit is inderdaad niet uniek en komt zeg maar wekelijks voorbij. Zoiets heet een "tree", daar vind je vast wel wat op.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Je kan in Mambo toch precies de volgorde opgeven waarin je je menu-items wilt hebben? Ik heb hier iig bij 'edit menu item' de opties 'parent item' en 'ordering'.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Ja ordering wel,. maar je kan zeg maar ook 20 lagen diep en ik wil dus een tree maken voor die 20 eventuele lagen. Als ik maar 2 lagen diep zou gaan zou het makkelijker zijn.

@-NMe-:
Hartstikke bedankt! Een erg efficiente methode is het niet (ik was zelf ook op zoiets gekomen), maar blijkbaar is dit toch een goede methode.

[ Voor 31% gewijzigd door armageddon_2k1 op 14-12-2005 14:49 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • mosymuis
  • Registratie: Maart 2002
  • Laatst online: 27-04 11:53
Het principe van recursieve functies klopt, maar de aanpak in het artikel vind ik ook niet optimaal. Ze draaien er binnen de functie voor elke parent een nieuwe query. In een eigen site met nested menu's draai ik voor elke pageview één query waarin ik alle menu rijen ophaal, en deze in verschillende arrays indeel. Vervolgens kan ik met de functies voor de menu opbouw, of het opzoeken van het pad, door de al opgebouwde arrays heen loopen. Lijkt me een stuk efficiënter, tip dus!

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

mosymuis schreef op woensdag 14 december 2005 @ 15:41:
Het principe van recursieve functies klopt, maar de aanpak in het artikel vind ik ook niet optimaal. Ze draaien er binnen de functie voor elke parent een nieuwe query. In een eigen site met nested menu's draai ik voor elke pageview één query waarin ik alle menu rijen ophaal, en deze in verschillende arrays indeel. Vervolgens kan ik met de functies voor de menu opbouw, of het opzoeken van het pad, door de al opgebouwde arrays heen loopen. Lijkt me een stuk efficiënter, tip dus!
Ligt aan een aantal dingen. Als je dingen als caching ingebouwd hebt en bijvoorbeeld ook regelmatig delen van de boom uit wilt lezen is zoiets nog aan te raden (een goed geoptimaliseerde query op een goed geindexeerde table is ook tien-duizendsten van seconden werk natuurlijk)
Pagina: 1