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

Povezivanje vrijednosti iz više tabela

[es] :: PHP :: Povezivanje vrijednosti iz više tabela

[ Pregleda: 980 | Odgovora: 9 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mb_sa

Član broj: 50529
Poruke: 159
*.dlp253.bih.net.ba.



Profil

icon Povezivanje vrijednosti iz više tabela17.09.2005. u 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.
17.09.2005. u 09:15 

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1822
*.speed.planet.nl.



Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 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
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
17.09.2005. u 10:01 

mb_sa

Član broj: 50529
Poruke: 159
*.dlp348.bih.net.ba.



Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 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>
17.09.2005. u 10:58 

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1822
*.speed.planet.nl.



Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 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
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
17.09.2005. u 15:01 

mb_sa

Član broj: 50529
Poruke: 159
*.dlp382.bih.net.ba.



Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 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!
17.09.2005. u 18:08 

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1822
*.speed.planet.nl.



Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 18:12
sibni bazu na askodric@gmail.com

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
17.09.2005. u 18:12 

broker

Član broj: 2415
Poruke: 8521
212.62.59.*



Profil

icon Re: Povezivanje vrijednosti iz više tabela18.09.2005. u 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.
18.09.2005. u 11:06 

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL Developer, Erst..
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at.

Sajt: www.baze-podataka.net


Profil

icon Re: Povezivanje vrijednosti iz više tabela18.09.2005. u 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 ...
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
18.09.2005. u 12:46 

mb_sa

Član broj: 50529
Poruke: 159
*.dlp269.bih.net.ba.



Profil

icon Re: Povezivanje vrijednosti iz više tabela18.09.2005. u 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]
18.09.2005. u 14:42 

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1822
*.speed.planet.nl.



Profil

icon Re: Povezivanje vrijednosti iz više tabela18.09.2005. u 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
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
18.09.2005. u 14:55 

[es] :: PHP :: Povezivanje vrijednosti iz više tabela

[ Pregleda: 980 | Odgovora: 9 ]

Postavi temu Odgovori

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