[ vladimirn @ 21.12.2007. 14:04 ] @
Ovo je strktura tabele:
Code:

###################################
catID   |   catName    | parentID
###################################
  1        Category 1       0
  2        Category 2       0
  3        Category 3       1
  4        Category 4       1
  5        Category 5       2

###################################

Table items
Code:

###################################
itemID  |  itemName    
###################################
  1         Item 1
  2         Item 2
  3         Item 3
####################################


Table cat_items
Code:

####################################
catID   |  itemID
####################################
 1           1
 3           1
 4           1
 1           2
 3           2
 4           2
 2           3
 5           3
####################################

Zapravo me zanima kako napraviti SQL upit da bih mogao uraditi sledece stvari:

Zelim da kada posetilac klikne na preuzmi PDF isprintam PDF doc nesto poput:
Code:

Kategorija 1
   Kategorija 3
     Item
     Item
     Item
  Kategorja 4
     Item 
     Item


Takodje ne znam kako da isprintam nesto tipa nalazite se:
Code:
   Kategorija 1-> Kategorija 3 

Ispod toga bih isprintao Iteme u okviru poslednje kategorije.

I kako da uz Item napisem kojoj sve kategoriji pripada?
[ dakipro @ 21.12.2007. 14:52 ] @
A gde ti je ustvari problem ovde, u mysql upitu ili u php-u?

[ vladimirn @ 21.12.2007. 15:01 ] @
pa nekako i u jednom i u drugom. prvo u vadjenju rezultata pa posle u prikazu :)
a vi kako te? :)
[ Miroslav Ćurčić @ 21.12.2007. 15:30 ] @
Ovo šti si naveo nije "strktura tabele", to su vrednosti.
Struktura je spisak polja sa opisom njihovog tipa (ono "create table ....").

Ovo što ti treba pre spada u mysql forum, pogledaj tamo,
sećam se da je već bilo reči o tome kako se formira "stablo grupa/kategorija/direktorijuma" i čita iz tabela.

majke mi?
[ dakipro @ 21.12.2007. 15:40 ] @
Pa da, bas je vladimirn imao taj problem sa rekurzijom, koji je verovatno resio, a jos uvek nije stigo da postavi resenje svog problema na toj temi.
Problem je sto si suvise opsirno postavio temu, iako si se trudio da das dovoljno podataka, to jednostavno nije neki problem na koji bi mogao da se odgovori na forumu (bar ne u smislenom broju odgovora i na dobrovoljnoj bazi). Znaci ili pivo pa u kafanu, ili berza poslova ili kreni da radis, pa kad konkretno zapnes ti pitas, da bi neko i mogao u jednoj (nekoliko) poruci da ti odgovori, ovako lici da je tema tipa "Napisite mi kod".
Znaci u sledecem odgovoru daj nesto konkretno, ili da zatvaramo

pa doobro...
[ vladimirn @ 24.12.2007. 09:22 ] @
Code:

select i.* , c_i.* , c.* , group_concat(c.catName) as path 
from items i
left join cat_items c_i
on i.itemID=c_i.itemID
left join categories c
on c_i.catID=c.catID

where i.itemID=50
group by i.itemID


Te ga pa! :)
ovdE sam u polje path izvukao putanju.
Ste se tice piva rad sam popiti par :)
Elem, petlja...
Zahvaljujuci Dakiju, resio sam problem 'vako:
Code:

function findParent($catID){
        global $smarty, $conn;
        $sql = "select parent from categories where catID = $catID";
        $result = $conn->execute($sql);
        while($row = $result->FetchRow()){
            $sql = "select catID, catName from categories where catID = '".$row['parent']."'";
            $result = $conn->execute($sql);
            $parent = $result->FetchRow();
        }
        return $parent;
    }
function printChildCategories($catId, $array, $lead=''){//populate select box for categories
        global $conn,$smarty;
        if(empty($catId)){$catId='0';}
        if(is_array($array)){
            foreach ($array as $r){
                if ($r['parent']==$catId){
                    if ($_REQUEST['catID']==$r['catID']){
                    $parent = Kategorije::findParent($r['catID']);
                    
                    if($parent['catID']==NULL){
                    $kat .= "<option selected value='0'>ROOT</option>";
                    $kat .= "<option  value='".$r['catID']."'>";
                    $kat .= $lead . $r['catName'];
                    }else{
                    
                    $kat .= "<option selected value='".$parent['catID']."'>";}
                    $kat .= $lead . $parent['catName'];
                    }else{
                    $kat .= "<option value='".$r['catID']."'>";
                    
                    $kat .= $lead . $r['catName'];
                    }
                    $kat .=Kategorije::printChildCategories($r['catID'], $array, $lead.'&nbsp;&nbsp;');
                    $kat .= "</option>";
                }
            } }     return $kat;
    }
    function populateSelectBox(){//query for categories
        $query = 'SELECT * FROM `categories` ORDER BY `parent`';
        $result = mysql_query($query);
        while ($r = mysql_fetch_assoc($result))
        $array[] = $r;
        return $array;
    }