[ BLACK_SWORD @ 16.12.2010. 17:01 ] @
Pozdrav.

Napravio sam rekurzivnu funkciju, odnosno funkciju koja će da poziva samu sebe, koja prikazuje katekgorije i podkategorije i reda ih jednu ispod druge neogranicen broj podkategorija.

vako

Automobili
_ mercedes
_ _ dijelovi mercedesa
_ _ _karburator od mercedesa
_pežo
Životinje
_krava
_ _ mlijeko_kravije


Funkcija izgleda ovako
Code:

function blog_kategorije($id,$indent)
{
    $upit=mysql_query("SELECT id_blog_kategorije, ime_kategorije FROM blog_kategorije WHERE kategorija_u_kategoriji='$id' ORDER BY datum_stvaranja_kategorije ASC");
    if(mysql_num_rows($upit))
    {
        while($redak=mysql_fetch_array($upit))
        {
            $indent.=($id==0)?'':' _ ';
            
            echo $indent.''.$redak['ime_kategorije'];
            
            blog_kategorije($redak['id_blog_kategorije'],$indent);
            $indent=substr($indent,0,1);        
        }
    }
}


e sad bi ja da uradim da funkciju spremim u "Funkcije.php" i da je prikazujem na kojim ocu stranicama da mi budu blog kategorije, e sad pošto cu kategorije priakzivati na više načina, negdje u <div> a negdje u <option> itd.

Dali mi neko može reći kako da napravim prikazivanje funkcije
ja sam probo vako al neradi
Code:

<?php
    
require('sajt/Postavke.php'); //Poziva Postavke.php.


function blog_kategorije($id,$indent,$t)
{
    $upit=mysql_query("SELECT id_blog_kategorije, ime_kategorije FROM blog_kategorije WHERE kategorija_u_kategoriji='$id' ORDER BY datum_stvaranja_kategorije ASC");
    if(mysql_num_rows($upit))
    {
        while($redak=mysql_fetch_array($upit))
        {
            $indent.=($id==0)?'':' _ ';
            
            echo $t;
            
            blog_kategorije($redak['id_blog_kategorije'],$indent,$t);
            $indent=substr($indent,0,1);        
        }
    }
}


//Prikazuje
$t='<option value="'.$redak['id_blog_kategorije'].'">'.$indent.''.$redak['ime_kategorije'].'</option>';

echo'<select name="">'.blog_kategorije(0,'',$t).'</select>';



?>




Dodo sam još jedan argument "$t" i napravio upit zaprikazivanje u variabli $t.

Al neradi. Dali neko zna kako da ovo napravim.

HVALA!
[ dakipro @ 16.12.2010. 18:15 ] @
Mislim da ti je u startu losa taktika da upit drzis u samoj funkciji.
Mislim da je bolje da izvuces upit pre poziva funckije, funkciji prosledis samo sve kategorije u jednom nizu i funkcija neka ti poslozi taj niz multidimenzionalno (da svaka kategorija ima Childs recimo) i onda na kraju samo u foreach (isto rekurzivni) odstampas sve iz niza.
I sto pre pocnes da radis sa nekim templat enginom (makar i sopstvenim, samo da nije echo usred rekurzivne funkcije), mnooogo ce ti biti lakse kasnije.
[ BLACK_SWORD @ 16.12.2010. 21:39 ] @
možeš li napisati primjer skripte