Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] wyswietlanie danych z bazy, pola w tabelach i rekordy jako menu
andixxx
post 15.06.2006, 19:18:02
Post #1





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 1.06.2006
Skąd: Legnica

Ostrzeżenie: (0%)
-----


witam... chcialbym sie dowiedziec, czy jest mozliwe aby wykorzystac baze mysql jako menu tzn chodzi mi o to, ze zalozmy mam w bazie tabele o nazwie "menu" w niej dwa pola "glowne menu" i "smieci". teraz w kazdym z tych pol mam po 3 rekordy kolejno nazwane "podmenu 1, 2 i 3"... moje pytanie jest takie czy da rade wyswietlic cala ta struktore w php tzn aby to wygladalo mniejwiecej tak jak ponizej a wszystkie podmenu podlinkowac na jakis adres?:

MENU GLOWNE
- podmenu 1
- podmenu 2
- podmenu 3
SMIECI
- podmenu 1
- podmenu 2
- podmenu 3

...chyba dobrze sie wyrazilem i zrozumiecie o co chodzi... chyba ze macie jakies inne pomysly i rady dotyczace tworzenia menu w panelu administratora mojej strony i wyswietlania stworzonego menu na stronie guitar.gif
Go to the top of the page
+Quote Post
mdco
post 15.06.2006, 20:02:50
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

Ostrzeżenie: (0%)
-----


Na przykład tak:
id | nazwa | parent_id

1 | MENU GLOWNE | 0
2 | podmenu 1 | 1
3 | podmenu 2 | 1
4 | podmenu 3 | 1
5 | SMIECI | 0
6 | podmenu 1 | 5
7 | podmenu 2 | 5
8 | podmenu 3 | 5


--------------------
zmoderowano - rozmiar
Go to the top of the page
+Quote Post
mario
post 16.06.2006, 08:49:14
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

Ostrzeżenie: (0%)
-----


ja proponuje inny uklad bazy, a w niej 2 tabele "MENU" i "PODMENU".

Tabela "MENU"

id|nazwa

Tabela "PODMENU"

id|menu|nazwa

I teraz masz proste, wyciągasz najpierw w pętli dane z tabeli "MENU" i sprawdzasz w tej pętli czy są podmenu w tabeli "PODMENU" po polu "menu" ktory jest identyczny jak "id" z tabeli "MENU". Jeżeli jest to masz podmenu :-)

Jest to proste, i dzieki takiemu rozwiazaniu mozesz w panelu w prosty sposob zarzadzac menu oraz podmenu, np. dodajac podmenu dajesz powyzej SELECT'a dzieki czemu klient moze z pola wyboru wybrac sobie menu do ktorego odnosi wstawiane podmeny. Zreszta.... jak zrobisz sobie to jest Twoja sprawa.

  1. <?php
  2. $query = "SELECT * FROM menu";
  3. $result = mysql_query($query,$baza);
  4.  
  5. while ($r= mysql_fetch_array($result))
  6.  {
  7. $menu_id = $r [id];
  8. $menu_nazwa = $r [nazwa];
  9.  
  10. echo "<a href='strona.php?menu=$menu_id'>$menu_nazwa</a><br>";
  11.  
  12. $query = "SELECT * FROM podmenu WHERE menu='$menu_id'";
  13. $result2 = mysql_query($query,$baza);
  14. $podmenu_istnieje = mysql_num_rows ($result2);
  15.  
  16. If (!empty($podmenu_istnieje))
  17.  {
  18. while ($r= mysql_fetch_array($result2))
  19.  {
  20. $podmenu_id = $r [id];
  21. $podmenu_nazwa = $r [nazwa];
  22.  
  23. echo "<a href='strona.php?podmenu=$podmenu_id'>$podmenu_nazwa</a><br>";
  24.  } 
  25.  }
  26.  }
  27. ?>


--------------------
W życiu piękne są tyko chwile....
Życie choć piękne tak krótkie jest....
Wystarczy chwila by zgasić je....
Go to the top of the page
+Quote Post
mike
post 16.06.2006, 08:56:51
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(mario @ 16.06.2006, 09:49 ) *
ja proponuje inny uklad bazy, a w niej 2 tabele "MENU" i "PODMENU".

Tabela "MENU"

id|nazwa

Tabela "PODMENU"

id|menu|nazwa

(...)


Ale po co dwie tabele, przecież to jest wbrew zasadom projektowania baz danych.
Jak masz dział linki, to też robisz oddzielne tabele: LINKI_FAJNE, LINKI_ŚMIESZNE, LINKI_INNE ?
(to tylko przykład)

Najlepszym rozwiązaniem jest to, które podał ~mdco, czyli jedna tabela a w niej menu.
Go to the top of the page
+Quote Post
babejsza
post 16.06.2006, 09:22:32
Post #5





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Poza tym co napisał @mike_mech to powstaje jeszcze problem gdy będziesz chciał rozbudowywać menu o kolejne poziomy. Przecież nie będziesz w tym celu tworzył następnych tabel i następnych zapytań. smile.gif
Go to the top of the page
+Quote Post
andixxx
post 17.06.2006, 00:22:13
Post #6





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 1.06.2006
Skąd: Legnica

Ostrzeżenie: (0%)
-----


i co wtedy?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 22:48