Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

rekurzivna funkcija za ispis strukture kategorija

[es] :: PHP :: rekurzivna funkcija za ispis strukture kategorija

[ Pregleda: 2361 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dee_
domagoj horvat
zagreb

Član broj: 73648
Poruke: 98
195.29.5.*

Sajt: www.astro-art.net


Profil

icon rekurzivna funkcija za ispis strukture kategorija01.12.2005. u 16:42 - pre 224 meseci
imam u bazi ovako nesto:


kat_id | parent_id | opis

1 0 prva
2 0 druga
3 0 treca
4 1 prva1
5 1 prva2
6 2 druga1
7 2 druga2
8 2 druga3
.
.
.
30 7 druga2 I
31 7 druga2 II
32 7 druga2 III
.
.
.

valjda ce bit jasno otprilike sta mislim :)

zanima me, ima li kakva zgodna rekurzija koja ce proc kroz sve ovo i ispisat 'drvo kategorija'? znaci, krene od ovih kojima je parent=0, pa svaku razgranat do besvijesti? ako nekome pada nesto na pamet... kako to najjednostavnije da izvedem?
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: rekurzivna funkcija za ispis strukture kategorija01.12.2005. u 22:37 - pre 224 meseci
I sta tebi tacno nije jasno??
Owl
 
Odgovor na temu

dee_
domagoj horvat
zagreb

Član broj: 73648
Poruke: 98
195.29.5.*

Sajt: www.astro-art.net


Profil

icon Re: rekurzivna funkcija za ispis strukture kategorija02.12.2005. u 15:20 - pre 224 meseci
dobar si :)

nije mi bilo jasno kako bi rekurzivno proso kroz ovakvo stablo (cija je dubina proizvoljna) i ispisao ga u obliku:

kategorija1
--podkategorija11
--podkategorija12
-----podkategorija 121
-----podkategorija 122
-----podkategorija 123
--podkategorija 13
kategorija 2
.
.
.

zapleo sam se jer je dubina proizvoljna, al nakon cijele noci probavanja i nekoliko restarta zbog beskonacnih petlji, rijesio sam : )



 
Odgovor na temu

dado_k
Varaždin

Član broj: 57122
Poruke: 300
*.cmu.carnet.hr.

ICQ: 326865106
Sajt: radim baš novi sajt u ph..


Profil

icon Re: rekurzivna funkcija za ispis strukture kategorija02.12.2005. u 19:01 - pre 224 meseci
pa onda postuj riješenje baš me zanima na koju foru si radio!
 
Odgovor na temu

dee_
domagoj horvat
zagreb

Član broj: 73648
Poruke: 98
195.29.5.*

Sajt: www.astro-art.net


Profil

icon Re: rekurzivna funkcija za ispis strukture kategorija02.12.2005. u 21:09 - pre 224 meseci
evo ga :)

vjerojatno ima nesto i za odbacit...kad sam vidio da radi ostavio sam nek odstoji...sutra cu vidjet ide li sta pametnije : )

ne znam kolko je elegantno, vjerojatno ide i puno jednostavnije, al mi je bilo dovoljno da je - proradilo : )


Code:

function glavna()
{
    global $main;
    
    if (isset($_GET['kategorija'])) $kat=$_GET['kategorija'];
        else $kat = NULL;
        
    katalog($kat);
    
    $main->smarty->display("katalog.tpl");

}

function katalog($kat)
{
    global $main;
    $main->baza->Otvori();

    if ($kat)    
    {
        DajElement($kat);
    }

    else
    {
        $query1 = "SELECT id, title FROM katalog_categories 
        WHERE active=1 AND parent = 0 ";
    
        $r=mysql_query($query1) or die (mysql_error());

        while($row = mysql_fetch_assoc($r)) 
        {
                DajElement($row['id']);
    
        }
    
    }
    

    $main->baza->Zatvori();

}

function DajElement($kat)
{
    global $main;
    global $sadrzaj;
        
    $query = "SELECT id, title FROM katalog_categories 
            WHERE active=1 AND id = $kat ";

    $r=mysql_query($query) or die (mysql_error());
    $row = mysql_fetch_assoc($r);
    $sadrzaj .= "<DIV class=glavne_kategorije><a href=\"$_SERVER[PHP_SELF]?kategorija=$row[id]\">$row[title]</a> <br>";

    Drvo($kat,$row['title']);
    
    $sadrzaj .= "</DIV>";
    
    $main->smarty->assign("sadrzaj",$sadrzaj);
}

function Drvo($kat,$ime)
{
    global $sadrzaj;
$query = "SELECT id, title FROM katalog_categories 
            WHERE active=1 AND parent = $kat ";

    $r=mysql_query($query) or die (mysql_error());
    $kolko = mysql_num_rows($r);
    
    if ($kolko > 0) $sadrzaj .="<DIV class=podkategorije>";
    
        while($row = mysql_fetch_assoc($r)) 
        {
        
        $sadrzaj .= "<a href=\"$_SERVER[PHP_SELF]?kategorija=$row[id]\">$row[title]</a> <br>";
        $vrati = ($kolko==0) ? 0 : Drvo($row['id'],$row['title']);
        }
    if ($kolko > 0) $sadrzaj .="</DIV>";
        
        return $vrati;        

}


jedino sta ne znam je kako u smartyju to ispisat kroz sections... nisam ulovio nacin kako bi to mogo... pa sam ovako, strpo sve u jednu varijablu 'sadrzaj' i nju poslo smartyiju.. dok ne smislim nesto more smart :)
 
Odgovor na temu

[es] :: PHP :: rekurzivna funkcija za ispis strukture kategorija

[ Pregleda: 2361 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.