Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: menu pobierane z 2 tabel
Forum PHP.pl > Forum > Przedszkole
jacknn
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
Kuziu
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'
jacknn
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
Kuziu
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 .......
jacknn
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ąć?
Kuziu
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
jacknn
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.