Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL] Menu, submenu, subsubmenu, subsubmenu, Dynamicznie z bazy danych
Blajo
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 1
Dołączył: 7.08.2005
Skąd: Górny Śląsk

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


Potrzebuję zrobić menu kategorii i podkategorii wyciąganych z bazy danych o strukturze

id_menu | nazwa | rodzic

id_menu - wiadomo
nazwa - wiadomo
rodzic - id_menu rodzica

Napisałem, działa i jest OK. Ale są na sztywno zaimplementowane 3 poziomy. Więc mam pytanie jak to napisać, żeby dynamicznie sam wyświetlał wszystkie menu i podmenu? Nawet w przypadku, kiedy będzie 20 podmenu?

Efekt jaki chcę osiągnąć:

1
-1.1
-1.2
-1.3
--1.3.1
--1.3.2
--1.3.3
-1.4
2
-2.1
-2.2
3
4
5
-5.1
-5.2

Ale podmenu dopiero widoczne po kliknięciu. Wersja online znajduje się pod adresem www.iseasy.pl/menu.php

A oto kod pisany "na sztywno".

  1. <?php
  2.  
  3. mysql_connect("localhost", "root", "");
  4.  
  5. $zapytanie = "SELECT * FROM menu WHERE rodzic = 0";
  6. $pobierz = mysql_query($zapytanie);
  7.  
  8. ?>
  9. <p><a href="menu.php">menu</a></p>
  10. <ul>
  11. <?php
  12.  
  13. while( $dane = mysql_fetch_array($pobierz) )
  14. {
  15.  echo "<li><a href='menu.php?id=".$dane['id_menu']."'>".$dane['nazwa']."</a></li>";
  16.  if( $dane['id_menu'] == $_GET['id'] )
  17.  {
  18. $zapytanie2 = "SELECT * FROM menu WHERE rodzic = $_GET[id]";
  19. $pobierz2 = mysql_query($zapytanie2);
  20. echo "<ul>";
  21. while( $dane2 = mysql_fetch_array($pobierz2) )
  22. {
  23.  echo "<li><a href='menu.php?id=".$dane['id_menu']."&id2=".$dane2['id_menu']."'>".$dane2['nazwa']."</a></li>";
  24.  if( $dane2['id_menu'] == $_GET['id2'] )
  25.  {
  26.  $zapytanie3 = "SELECT * FROM menu WHERE rodzic = $_GET[id2]";
  27.  $pobierz3 = mysql_query($zapytanie3);
  28.  echo "<ul>";
  29.  while( $dane3 = mysql_fetch_array($pobierz3) )
  30.  {
  31.  echo "<li><a href='menu.php?id=".$dane['id_menu']."&id2=".$dane2['id_menu']."'>".$dane3['nazwa']."</a></li>";
  32.  }
  33.  echo "</ul>";
  34.  }
  35. }
  36. echo "</ul>";
  37.  }
  38. }
  39. ?>
  40. </ul>


Liczę na pomoc w rozwiązaniu tego problemu.


--------------------
tutoriale
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 21.08.2025 - 22:54