Menu uit een db halen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ronnie

Ronnie

30/12/2005 19:55:00
Quote Anchor link
hoi..

Voor mijn site wil ik ale menus uit een db laden, nu weet ik opzich wel hoe dat moet, maar ik loop tegen een probleem aan

code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?
                        
                        $sql
= "SELECT * FROM adm_menus ORDER BY type";
                        $result = mysql_query($sql);

                              echo "<table width=166 cellpadding=0 cellspacing=0>";
                              echo "<tr>";
                              echo "<td><img src=layout/menu_content/mysql.gif></td>";
                              echo "</tr>";
                              echo "<tr>";
                              echo "<td><img src=../layout/images/menu_content/main_top.gif></td>";
                              echo "</tr>";
                              echo "<tr>";
                              echo "<td background=../layout/images/menu_content/menu_bg.gif>";
                              echo "<table width=94% align=center>";
                              echo "<tr>";
                              echo "<td>";

                        while ($menu = mysql_fetch_array($result)) {
                        echo "<img src=../layout/images/arrow.gif border=0> <a href=?p=mysql/".$menu['link'].">".$menu['menu']."</a><br>";
                        }

                              echo "</td>";
                              echo "</tr>";
                              echo "</table>";
                              echo "</td>";
                              echo "</tr>";
                              echo "<tr>";
                              echo "<td><img src=../layout/images/menu_content/main_bottom.gif></td>";
                              echo "</tr>";
                              echo "</table>";
                              
                              ?>

Nu bouwt hij het menu om de while lus heen die alle records uit de db haalt!.
als ik de gehele tabel in de while lus zet bouwt hij voor elk record het hele menu opnieuw.

Ik wil dat hij het menu opbouwt. alle opties die bij het type horen erin klapt en een nieuw menu bouwt meny daar weet alle opties in die bij dat type hoort enz!..
Gewijzigd op 30/12/2005 20:00:00 door Ronnie
 
PHP hulp

PHP hulp

18/11/2024 10:44:30
 
Burdy

Burdy

30/12/2005 20:04:00
Quote Anchor link
Als ik je goed begrijp wil je het volgende opbouwen:

Menu 1
optie 1a
optie 1b
Menu 2
optie 2a
optie 2b
optie 2c
Menu 3
optie 3a

Is dat inderdaad zo?
 
Ronnie

Ronnie

30/12/2005 20:05:00
Quote Anchor link
jah.
 
Jan Koehoorn

Jan Koehoorn

30/12/2005 20:07:00
Quote Anchor link
Even terzijde: aangezien je alleen de velden 'link' en 'menu' uit je db haalt kun je je query beter zo opstellen:

SELECT link, menu
FROM enz
 
Ronnie

Ronnie

30/12/2005 20:08:00
Quote Anchor link
Verder staat alleen type er nog in!. wat is het voordeel om het zo te doen?.. is het sneller?.
 
Jan Koehoorn

Jan Koehoorn

30/12/2005 20:09:00
Quote Anchor link
Ronnie:
jah.

Als je zo'n menustructuur wilt, moet die ook in je db staan natuurlijk. Bij zo'n boomstructuur werk je meestal met parents en children bijv.
 
Klaasjan Boven

Klaasjan Boven

30/12/2005 20:11:00
Quote Anchor link
Lijkt mij in dit geval het handigst te werken met meerdere Quries
SELECT link, menu FROM adm_menus WHERE type =...
en dan while enz.
 
Ronnie

Ronnie

30/12/2005 20:12:00
Quote Anchor link
Ik heb nu zelf wel al een idee!.. alleen dan zou ik met 2 tabellen moeten gaan werken!..., als t met 1 kan is dat natuurlijk beter!.
 
Robert Deiman

Robert Deiman

30/12/2005 20:33:00
Quote Anchor link
Ronnie:
Ik heb nu zelf wel al een idee!.. alleen dan zou ik met 2 tabellen moeten gaan werken!..., als t met 1 kan is dat natuurlijk beter!.

Met 1 tabel hoeft niet per definitie beter te zijn, soms is dat een stuk minder snel dan als je met 2 tabellen werkt.
In jouw geval kan het wel, maar is het niet handig.

Stel je hebt een tabel Menu's met een id en de menu naam (menu1, menu2, etc) en een tabel links met daarin een id, link, menuid en een type.

Menu -->ID, NAAM
Links -->ID, LINK, MENUID, TYPE

Als je dit in 1 tabel zou zetten, wordt het veel lastiger om mee te werken, en om nieuwe menu's toe te voegen.
Met 2 tabellen zet je het menuid in de tabel bij de links, en met die ID haal je de naam van dat menu uit de menu tabel. (zo zou ik het doen)
 
Ronnie

Ronnie

30/12/2005 20:56:00
Quote Anchor link
K heb nu dit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?
                        
                        $sql
= "SELECT menu FROM adm_menus";
                        $result = mysql_query($sql);
                        while ($menu = mysql_fetch_array($result)) {
                              echo "<table width=166 cellpadding=0 cellspacing=0>";
                              echo "<tr>";
                              echo "<td><img src=layout/menu_content/mysql.gif></td>";
                              echo "</tr>";
                              echo "<tr>";
                              echo "<td><img src=../layout/images/menu_content/main_top.gif></td>";
                              echo "</tr>";
                              echo "<tr>";
                              echo "<td background=../layout/images/menu_content/menu_bg.gif>";
                              echo "<table width=94% align=center>";
                              echo "<tr>";
                              echo "<td>";
                        $sql_optie = "SELECT * FROM adm_opties WHERE menuid = ".$menu['id']."";
                        $result_optie = mysql_query($sql_optie);
                        while ($optie = mysql_fetch_array($result_optie)) {

                        }

                              echo "</td>";
                              echo "</tr>";
                              echo "</table>";
                              echo "</td>";
                              echo "</tr>";
                              echo "<tr>";
                              echo "<td><img src=../layout/images/menu_content/main_bottom.gif></td>";
                              echo "</tr>";
                              echo "</table>";
                        }

                              ?>


krijg alleen een error

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

wat is er fout ik ken t niet vinden

* EDIT. ik heb het a gevonden!. eerste qeury haalde ik alleen maar menu uit de db ipv ID erbij
Gewijzigd op 30/12/2005 20:58:00 door Ronnie
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.