[ mb_sa @ 17.09.2005. 09:15 ] @
Pozdrav svima!

Imam sljedeće tabele:

katalog (u nju se spremaju proizvodi)
- id
- naslov
- kategorija (upisuje se id kategorije)
- podkat (upisuje se id podkategorije)

kategorije (u nju se spremaju kategorije proizvoda)
- id
- naziv

podkategorije (u nju se spremaju podkategorije)
- id
- naziv
- kat_id


Želim prikažem sve proizvode iz tabele katalog zajedno sa njenim naslovom i pripadajućom kategorijom i podkategorijom.

Naravno, ovdje bi upalio klasični SELECT, međutim ne bi mi ispisalo nazive kategorije i podkategoirje već njihove id-ove.

Vjerujem da ovo veze ima sa JOIN, ali ne mogu se nikako skoncentrisati da napišem taj upit.

Znači, potreban mi je samo taj upit i ne bi bilo loše da se naglasi oko ispisa rezultata, ako ima nekih promjena.

Unaprijed zahvalan.
[ SmilieBG @ 17.09.2005. 10:01 ] @
SELECT kata.naslov, kate.naziv, pod.naziv from katalog as kata, kategorije as kate, podkategorije as pod where kata.kategorija = kategorija.id, kata.podkat = podkategorije.id;

to bi trebalo da fercera :)

Ukoliko zelis da suzis rezultate, dodajes WHERE na kraju, npr:

where kata.naslov like "%neki naslov%";

Citat:
Znači, potreban mi je samo taj upit i ne bi bilo loše da se naglasi oko ispisa rezultata, ako ima nekih promjena.

Ovo mi nije jasno, sta mislis sa naglasavanjem ako ima promena :S

Poz,
Sale
[ mb_sa @ 17.09.2005. 10:58 ] @
Pozdrav SmilieBG,

sa obzirom da sam dao pogresnu shemu za tabelu katalog, tj. umjesto kolone naslov
trebalo je imeproizvoda, ostatak sam provjerio i OK je.

U skladu sa tim sam i promjenio onaj upit. Medjutim ne izbacuje mi rezultate, jer ne znam koje vrijednosti ispisati.
Probavo sam neke al ne ide. To je onaj dio koji nisi razumio. Ispod je dakle čitav dokumnet. Uz pretpostavku da upit sto si napiso fercera (al meni se cini logicnim),
treba jos pridruziti vrijednosti varijablama! Hvala!

Code:
<?php require_once('Connections/conn.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<?php 
    $baza = mysql_select_db("baza");
    $upit = "SELECT kata.imeproizvoda, kate.naziv, pod.naziv FROM katalog as kata, kategorije as kate, podkategorije as pod WHERE kata.kategorija = kategorija.id, kata.podkat = podkategorije.id"; 
    $rezultat = mysql_query($upit); 
    while($r=mysql_fetch_array($rezultat)) 
        {    // paznja na sljedece tri linije koda
            $proizvod=$r["nesto_ovdje"];   
            $kategorija=$r["nesto_ovdje1"];  
            $podkategorija=$r["nesto_ovdje2"];  
            
    echo"<table width=\"498\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  <tr>
    <td height=\"22\">:: <strong>$proizvod | $kategorija | $podkategorija</strong></td>
  </tr>
</table>";
}
?>
<body>
</body>
</html>
[ SmilieBG @ 17.09.2005. 15:01 ] @
Mrzi me sad da pravim bazu da ovo isprobam, ali uradi sledece:

Code:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>

<?

require_once('Connections/conn.php');

$baza = mysql_select_db("baza");
$upit = "SELECT kata.imeproizvoda, kate.naziv, pod.naziv FROM katalog as kata, kategorije as kate, podkategorije as pod WHERE kata.kategorija = kategorija.id, kata.podkat = podkategorije.id";
$rezultat = mysql_query($upit);

while($r=mysql_fetch_array($rezultat))
{
  echo "<pre>"print_r($r);"</pre>";
}
?>
<body>
</body>
</html>


<pre>print_r($r);</pre> -- ispisace ti vrednosti variable :)

Onda ih samo zamenis u code. Mislim, ali nisam siguran da ce i sledece raditi:

Code:

while($r=mysql_fetch_array($rezultat))
{
  echo"<table width=\"498\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
        <tr>
            <td height=\"22\">:: <strong>$r[0] | $r[1] | $r[2]</strong></td>
        </tr>
     </table>";

}


gde su:
$r[0] - prvi select iz query-a (kata.imeproizvoda);
$r[1] - drugi select iz query-a (kate.naziv);
$r[2] - treci select iz query-a (pod.naziv);

Poz,
Sale
[ mb_sa @ 17.09.2005. 18:08 ] @
Nažalost ne moze i posljednje riješenje!
Ne znam da li imas vremena i volje da ti posljem exportovanu bazu sa nekoliko unosa na email ili
mozda neko drugi ima rjesenje!

Svjedno hvala!
[ SmilieBG @ 17.09.2005. 18:12 ] @
sibni bazu na [email protected]

Poz,
Sale
[ broker @ 18.09.2005. 11:06 ] @
Dovoljno je da pogledas u uputstvu sintaksu za LEFT JOIN i to ti je to. Ovo sto ti treba je sigurno tamo dato kao pimer.

No, cini se da imas gresku u strukturi baze, ako je podkategorija u odnosu na katgoriju onda to treba da bude definisano vezom izmedju tabela kategorije i podkategorije, a ne tabelom katalog.

Izbaci iz tabele katalog polje kategorija, a stavi ga u tabelu podkategorije.
[ Dejan Topalovic @ 18.09.2005. 12:46 ] @
Da dobijes imena svih proizvoda, naziv kategorije i naziv podkategorije, koristi ovaj upit:
Code:

select ka.id, ka.ime, ke.naziv, p.naziv
from katalog ka, kategorije ke, podkategorije p
WHERE ke.id = ka.kat_id
AND p.id = ka.podkat_id
ORDER by ka.id;


Ako zelis da dobijes podatke o samo jednom proizvodu (npr. o proizvodu sa id = 1), koristi ovaj kod:
Code:

select ka.ime, ke.naziv, p.naziv
from katalog ka, kategorije ke, podkategorije p
WHERE ka.id = 1
AND ke.id = ka.kat_id
AND p.id = ka.podkat_id;


Primijeti da si u svom source kodu zaboravio dodati opciju AND u WHERE klauzuli...
Code:
$upit = "SELECT kata.imeproizvoda, kate.naziv, pod.naziv FROM katalog as kata, kategorije as kate, podkategorije as pod WHERE kata.kategorija = kategorija.id, kata.podkat = podkategorije.id";
Dakle, fali ti AND izmedju kata.kategorija = kategorija.id i kata_podkat = podkategorije.id ...
[ mb_sa @ 18.09.2005. 14:42 ] @
Posalo mi je rjesenje SmilieBG i sve radi kako sam i namjeravao. Zahvaljujem svima na pomoci!

Pozdrav.


Code:
$upit = "SELECT kata.imeproizvoda, kate.naziv, pod.naziv FROM katalog AS kata, kategorije AS kate, podkategorije AS pod WHERE kata.kategorija = kate.id AND kata.podkat = pod.id";


[Ovu poruku je menjao mb_sa dana 18.09.2005. u 15:43 GMT+1]
[ SmilieBG @ 18.09.2005. 14:55 ] @
Citat:
StRiPy: Dakle, fali ti AND izmedju kata.kategorija = kategorija.id i kata_podkat = podkategorije.id ...


Tacno :)
Ali sam ispravio i poslao mu na mail :)

Poz,
Sale