Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
[php][mysql] Wyswietlanie kategori i podkategori - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: [php][mysql] Wyswietlanie kategori i podkategori (/thread-php-mysql-wyswietlanie-kategori-i-podkategori)



[php][mysql] Wyswietlanie kategori i podkategori - mayka - 09-09-2011

Witam wszystkich Wink
Mam taki problem z wyświetleniem kategori i do nich podkategorii.
Chciałbym żeby sie wyswietlało:
Kategoria
podkategoria 1.1
podkategroia 1.2
Kategroia 2
podkategroia 2.1
podkategroia 2.2

A wyswietla wszystko:
Kategoria
podkategoria 1.1
podkategroia 1.2
podkategroia 2.1
podkategroia 2.2
Kategroia 2
podkategoria 1.1
podkategroia 1.2
podkategroia 2.1
podkategroia 2.2
Teraz jak by ktoś mogł mi to tak przerobić zeby to działało tak jak powinno ? Bo mnie szlak jasny trafi zaraz ;p

Kod PHP:
wynik mysql_query("SELECT id,kategorie,rodzic FROM kategorie WHERE rodzic = '0' ")or die('Błąd zapytania1');
$ilekat mysql_num_rows($wynik);
while(
$r mysql_fetch_assoc($wynik)) {
    echo 
"-";
    echo 
$r['kategorie'];
    echo 
"<br>";
        for(
$idpomo=1$idpomo<=$ilekat$idpomo+=1){
        
$wynik2 mysql_query("SELECT kategorie,rodzic FROM kategorie WHERE rodzic = '".$idpomo."' ")or die('Błąd zapytania3');
            while(
$a mysql_fetch_assoc($wynik2)){
            echo 
"-| ";
            echo 
$a['kategorie'];
            echo 
"<br>";
            }
        }
    }


A tablica wyglada tak:
Kod PHP:
array('id'=>1,'kategorie'=>'KatGlowna1','rodzicid'=>0),
  array(
'id'=>2,'kategorie'=>'Gatglowna2','rodzicid'=>0),
  array(
'id'=>3,'kategorie'=>'Podkategoria1.1','rodzicid'=>1),
  array(
'id'=>4,'kategorie'=>'Podkategoria1.2','rodzicid'=>1),
  array(
'id'=>5,'kategorie'=>'Podkategoria2.1','rodzicid'=>2),
  array(
'id'=>6,'kategorie'=>'Podkategoria2.2','rodzicid'=>2



RE: [php][mysql] Wyswietlanie kategori i podkategori - mateo - 09-09-2011

Po pobraniu id kategorii, wykonaj kolejne zapytanie, które sprawdzi czy są podkategorie. Jeśli tak, to pobierz dane i wyświetl jak nie ma idź dalej.


RE: [php][mysql] Wyswietlanie kategori i podkategori - uriziel01 - 16-09-2011

Proszę:
Kod:
$master_DB->query("SELECT cat_table.title, cat_table.id, cat_table.level, cat_table.parent_id FROM " . master_prefix .  "categories cat_table
where brands = '0' AND not exists (select null from " . master_prefix . "categories where parent_id = cat_table.id) ORDER BY cat_table.parent_id ASC LIMIT 100");
Są to połączone dwa zapytania z których pierwsze wyciąga kolejno wszystkie kategorie a drugie sprawdza czy kategoria jest czyimś 'rodzicem'.

To kod żywcem wyrwany z jednej testowej stronki, nie jest to jakieś super wydajne, ale to rozwiązanie do małych baz danych więc daj tylko dla pewności indeksy na kolumny id oraz parent_id a będzie działać wyśmienicie Smile