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

Kako izvuci rezultat iz tri tabele?

[es] :: PHP :: Kako izvuci rezultat iz tri tabele?

[ Pregleda: 2153 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vladimirn
Vladimir Nikolic
Novi Sad

Član broj: 38585
Poruke: 81
*.static.sbb.co.yu.



Profil

icon Kako izvuci rezultat iz tri tabele?21.12.2007. u 14:04 - pre 199 meseci
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?
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
89.216.108.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: Kako izvuci rezultat iz tri tabele?21.12.2007. u 14:52 - pre 199 meseci
A gde ti je ustvari problem ovde, u mysql upitu ili u php-u?


 
Odgovor na temu

vladimirn
Vladimir Nikolic
Novi Sad

Član broj: 38585
Poruke: 81
*.static.sbb.co.yu.



Profil

icon Re: Kako izvuci rezultat iz tri tabele?21.12.2007. u 15:01 - pre 199 meseci
pa nekako i u jednom i u drugom. prvo u vadjenju rezultata pa posle u prikazu :)
a vi kako te? :)
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.beotel.net.



+19 Profil

icon Re: Kako izvuci rezultat iz tri tabele?21.12.2007. u 15:30 - pre 199 meseci
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?
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
89.216.108.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: Kako izvuci rezultat iz tri tabele?21.12.2007. u 15:40 - pre 199 meseci
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...
 
Odgovor na temu

vladimirn
Vladimir Nikolic
Novi Sad

Član broj: 38585
Poruke: 81
*.static.sbb.co.yu.



Profil

icon Re: Kako izvuci rezultat iz tri tabele?24.12.2007. u 09:22 - pre 198 meseci
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;
    }
 
Odgovor na temu

[es] :: PHP :: Kako izvuci rezultat iz tri tabele?

[ Pregleda: 2153 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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