Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [php/JS] Vertakt menuutje bouwen (https://forum.scholieren.com/showthread.php?t=116159)

Orion 04-06-2002 08:48

[php/JS] Vertakt menuutje bouwen
 
Ingewikkeld probleem: ik wil het menuutje op mijn website (te bekijken op http://apollo.frd.dhs.org/service/ als mijn server online is) door php laten maken naar waarden die uit een database getrokken worden.

de output (JavaScript) moet er bijvoorbeeld als volgt uit komen te zien:

PHP-code:

Menu1=new Array("Home","index.php","",0,20,128);

Menu2=new Array("Over mij","","",2);
    
Menu2_1=new Array("Profiel","?page=bla","",0,20,128);    
    
Menu2_2=new Array("Hobbies","?page=bla","",3);
        
Menu2_2_1=new Array("Zweefvliegen","?page=bla","",0,20,128);
        
Menu2_2_2=new Array("Computers","?page=bla","",0);
        
Menu2_2_3=new Array("Fotografie","?page=bla","",0);

Menu3=new Array("Computer","blank.htm","",2);
    
Menu3_1=new Array("Hardware","?page=bla","",0,20,128);
    
Menu3_2=new Array("Software","?page=bla","",2);
        
Menu3_2_1=new Array("Installatie","?page=bla","",0,20,128);
        
Menu3_2_2=new Array("Webdesign","?page=bla","",0);
    
Menu4=new Array("Studiebegeleiding","","",0);
    
Menu5=new Array("Auto","","",0);

Menu6=new Array("","","",0);

Menu7=new Array("Contact","mailto:florian@scholieren.com","",0); 


Voor degenen die er bekend mee zijn: ik wil zoiets als de manier waarop je bij vbb de forumlijst kunt indelen en van volgorde kunt veranderen.

Belangrijke punten:
- weinig database queries
- makkelijk invoegen van menu-items, dus alleen naam, link en volgorde nummer ofzo


Eigenlijk zou dus alle info met 1 querie uit de database moeten komen, maar hoe sorteer je het dan.... ik kom er niet uit :(


Een database structuur als dit had ik bedacht, maar het zal wel iets anders moeten

Code:

id | text          | link      | parent | order
1  | Home          | index.php | 0      | 1
2  | Over mij      | bla.php  | 0      | 2
3  | Profiel      | bla.php?x | 2      | 1
4  | Hobbies      | kwak.htm  | 2      | 2
5  | Zweefvliegen  | blub.html | 4      | 1
6  | Computers    | whoei.php | 4      | 1


Wie heeft er een geniaal idee?

eddie 04-06-2002 08:51

het is makkelijker om een hoofdtabel met subtabel te maken, dan kun je joins uitvoeren (en meestal een select-statement).

Triloxigen 04-06-2002 08:52

1 ander dingetjes wel,
het menu komt me erg bekend voor.
alsof het van een bekende website afkomt :/

order by 'parent'




maareuhnm, kun je niet beter met 100 en 200 gaan werken
want dan kun je als het moet er nog een 150 tussen zetten enzo ;)

Chimera 04-06-2002 12:45

Citaat:

eddie schreef:
het is makkelijker om een hoofdtabel met subtabel te maken, dan kun je joins uitvoeren (en meestal een select-statement).
Jeej! Whohooo! Je kunt joins uitvoeren! En zelfs een select! W00t!

:rolleyes:

Chimera 04-06-2002 12:54

Citaat:

Orion schreef:

Een database structuur als dit had ik bedacht, maar het zal wel iets anders moeten

Kan prima zo, maar je geeft alleen niet genoeg informatie. Je hoeft namelijk niet elke keer alle menu-items uit de DB te trekken, aangezien ze hoogstwaarschijnlijk toch niet allemaal zichtbaar zijn.

Hoe diep kan dit gaan? x-lagen, of onbeperkt? Ik heb nl. een dergelijk menu gebouwd (http://www.webcontext.nl/ , menu links) maar dat heeft maar 2 lagen.

In je code zul je moeten kijken welk item actief (op geklikt). Dan haal je de root items (parent 0), het actieve item, en zijn sub-items in een keer op. Dus:

$query = "SELECT * FROM menu WHERE parent IN (0,$actief->id) OR id=$actief->id ORDER BY parent, order";

Kweet niet of er fouten inzitten, maar dit moet werken. De exacte boomstructuur moet je dan dmv code uitvogelen, daar is een RDB niet echt handig in.


Alle tijden zijn GMT +1. Het is nu 04:46.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.