kategoria1
>>kategoria3
>>kategoria5
kategoria2
kategoria4
>>kategoria6
kategoria7
Napisalem sobie taki kod, nie jest to oczywiscie jakis profesjonalny kod gdyz jestem poczatkujacy.
<?php require_once '../baza/polaczenie.inc.php'; function kategoria_has_child($katid){ $sql="SELECT * FROM kategoria WHERE KAT_PARENT=$katid"; $result=$conn->query($sql); if($userdata=$result->fetchRow(DB_FETCHMODE_ASSOC)){ return true; } else return false; } function kategoria_jest_child($katid){ $sql="SELECT * FROM kategoria WHERE KAT_ID=$katid AND KAT_PARENT!=0"; $result=$conn->query($sql); if($userdata=$result->fetchRow(DB_FETCHMODE_ASSOC)){ return true; } else return false; } function pokaz_childa($katid){ $sql="SELECT * FROM kategoria WHERE KAT_PARENT=$katid"; $result=$conn->query($sql); if($userdata=$result->fetchRow(DB_FETCHMODE_ASSOC)){ }else return false; } function buduj_liste_kategorii(){ $sql="SELECT * FROM kategoria"; $result=$conn->query($sql); while($userdata=$result->fetchRow(DB_FETCHMODE_ASSOC)){ if(kategoria_has_child($userdata['KAT_ID'])&&!kategoria_jest_child($userdata['KAT_ID'])){ pokaz_childa(pokaz_childa($userdata['KAT_ID'])); } if(!kategoria_has_child($userdata['KAT_ID'])&&!kategoria_jest_child($userdata['KAT_ID'])){ }} } buduj_liste_kategorii(); ?>
struktura tabeli kategorie wyglada nastepujaco
kategoria
KAT_ID - klucz glowny, identyfikator kategorii
KAT_Nazwa - nazwa kategori (przykladowo kategoria1,kategoria2...kategoriaN)
KAT_PARENT - jezeli jest rozny od 0 , to znaczy ze kategoria jest rodzicem innej kategorii
KAT_Opis - opis kategorii
wszystko teraz niby działa, ale problem tkwi w tym miejscu pokaz_childa(pokaz_childa($userdata['KAT_ID'])); - to jest troche bez sensu, bo dziala tylko do 2 poziomu zaglebienia czyli np kategoria 3 jest dzieckiem kategorii1 a kategoria5 jest dzieckiem kategorii 3, gdy dodam dziecko kategorii 5 to juz to rozwiazanie nie daje efektu
nie wiem, moze mozna to zrobic jakos rekurencja, ja narazie nie mam pomyslu, moze ktos obeznany moglby pomoc jakos, w podgladzie bbcode chyba nie pokolorowal tego kodu jak to mialo by byc, nie wiem dlaczego
pzdr