Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[php][mysql] Wyswietlanie kategori i podkategori
#1
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
Odpowiedz
#2
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.
Odpowiedz
#3
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
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak sprawdzić czy adres www znajduje sie w bazie mysql? jarekcda 8 9,035 13-05-2017, 01:02
Ostatni post: miketodson255
  Optymalizacja MySQL-a tomek_00 1 3,930 01-09-2013, 13:31
Ostatni post: hieroshima
  [MySQL] Struktura bazy dla słownika msx83 2 3,929 24-08-2013, 16:26
Ostatni post: msx83
  Komunikacja PHP z MySQL na serwerze pawstrze 5 6,455 16-07-2013, 15:58
Ostatni post: Engine
  [MySQL] wyszukiwarka problem darlowiak 3 3,562 13-06-2013, 12:58
Ostatni post: darlowiak

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl