Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> menu pobierane z 2 tabel, hierarchia menu
jacknn
post 14.02.2006, 00:20:24
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 10.02.2005

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


chcę zrobić takie sobie menu:

menu 1
podmenu 1
podmenu 2
podmenu 3
menu 2
podmenu 1
podmenu 2

tylko tak, mam dwie tabele:

tabela kategoria:

id
nazwa

oraz tabele podkategoria:

id
kategoria
nazwa


i wykorzystując te dwie tabele lub tabele podkategoria zrobić menu odpowiednio
menu = kategoria
podmenu = podkategoria

Jak to sęsownie ułozyć w php aby przypożadkować podkategorię do kategorii i wyswitlic to wszystko w takim układzie jak pokazałem na poczatku tego posta questionmark.gif

Ten post edytował jacknn 14.02.2006, 00:20:51
Go to the top of the page
+Quote Post
Kuziu
post 14.02.2006, 12:40:48
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Witam,

Można wyjść trochę na przód i stworzyć to wszystko w 1 tabeli dodatkowo nie ograniczająć ilości kolejnych poziomów.

id, poziom, nadrzedny, nazwa

I teraz np. menu 1 poziomu
Kod
1, 1, 0, Menu1
2, 1, 0, Menu2
3, 1, 0, Menu3


Podmenu menu 1

Kod
4, 2, 1, Podmenu11
5, 2, 1, Podmenu12
6, 2, 1, Podmenu13


Podmenu podmenu1

Kod
7, 3, 4, Podmenu111
8, 3, 4, Podmenu112


itd...

Oczywiscie mozna to bardziej dopracować to tylko pomysł

Wyciągając Głowne Menu robimy
  1. WHERE poziom='1'

Wyciągając Podmenu menu 1
  1. WHERE poziom='2' AND nadrzedny='1'


Ten post edytował Kuziu 14.02.2006, 12:42:32


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
jacknn
post 14.02.2006, 17:52:37
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 10.02.2005

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


i ja tez tak kombinowałem, ale nie wiem jak to zapisać w php aby dobrze wyświetlało, zawsze było coś nie tak, masz może jakiś pomysłquestionmark.gif
Go to the top of the page
+Quote Post
Kuziu
post 14.02.2006, 23:00:28
Post #4





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


No przecież Ci napisałem questionmark.gif blink.gif questionmark.gif

  1. <?php
  2.  
  3. $result = mysql_query('SELECT nazwa FROM tabela WHERE poziom='1'');
  4. while($row = mysql_fetch_array($result)){
  5. echo($row['nazwa']);
  6. }
  7.  
  8. ?>


To wyświetli Ci menu 1 poziomu

z kolejnymi robisz to samo z innym WHERE w zapytaniu

  1. WHERE poziom='2' AND nadrzedny='1'


I tak dalej .......


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
jacknn
post 14.02.2006, 23:13:26
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 10.02.2005

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


Zgoda, ale ta metoda powoduje wpisanie tyle razy zapytania ile poziomów będę miał, ale jak to zrobić dla gościa laika który nie będzie umiał zrobić zapytania i ma tylko do dyspozycji prostego admina w ktorym dodaje kategorie i podkategorie, do podkategorii dopisuje jakieś produkty.
Chodzi mi o to, aby jedno zapytanie tak zrobić aby sam sobie robił te poziomy i sam dodawał w menu kategorie i podkategorię w miarę wzrostu ich liczby ?
Powiem szczerze, że kombinowałem z użycim zapytania w zapytaniu czyli w pętli while próbowałem wstawić drugą pętle, ale ta pętla nadrzędna nie wykonywała się do końca, po wyświetleniu jednego rekordu druga pętla wyświetliła wszystkie podkategorie, ale pętla pierwsza nie wyświetlała dalej. Zrobiłem to tak:

  1. <?
  2. include ("config.php");
  3.  
  4. $sql = "SELECT * FROM kategorie";
  5. $wynik = mysql_query($sql);
  6. while ($rez = mysql_fetch_array($wynik)) {
  7. echo "".$rez['nazwa']."<br>";
  8. $kat = $rez['nazwa'];
  9. $sql = "SELECT * FROM podkategorie WHERE kategoria='$kat'";
  10. $wynik = mysql_query($sql);
  11. while ($rez = mysql_fetch_array($wynik)) {
  12. echo "&nbsp;&nbsp;&nbsp;".$rez['nazwa']."<br>";
  13. }
  14. echo "<br>";
  15. }
  16.  
  17. ?>


Wiem, że to nie działa i nie ma sensu, ale jak z tego wybrnąć?
Go to the top of the page
+Quote Post
Kuziu
post 14.02.2006, 23:22:22
Post #6





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Nie wiem czy widzisz ale operujesz na tych samych zmiennych 2 razy

$sql i $sql
$wynik i $wynik

Przez to 1 pętla While przestaje działać bo kasujesz jej wyniki nadpisując je nowymi


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
jacknn
post 14.02.2006, 23:37:54
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 10.02.2005

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


o wlaśnie, to tu był problem

Dzięki wielkie, zamotałem się i nie pomyślałem do końca, pozmieniałem zmienne i działa gites, jak nalezy

Pozdrawiam
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: 21.06.2025 - 01:49