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

Povezivanje vrijednosti iz više tabela

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

[ Pregleda: 3132 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mb_sa

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



Profil

icon Povezivanje vrijednosti iz više tabela17.09.2005. u 09:15 - pre 225 meseci
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.
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

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



+3 Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 10:01 - pre 225 meseci
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
=========
 
Odgovor na temu

mb_sa

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



Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 10:58 - pre 225 meseci
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>
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

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



+3 Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 15:01 - pre 225 meseci
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
=========
 
Odgovor na temu

mb_sa

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



Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 18:08 - pre 225 meseci
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!
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

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



+3 Profil

icon Re: Povezivanje vrijednosti iz više tabela17.09.2005. u 18:12 - pre 225 meseci
sibni bazu na [email protected]

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Povezivanje vrijednosti iz više tabela18.09.2005. u 11:06 - pre 225 meseci
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.
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

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

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Povezivanje vrijednosti iz više tabela18.09.2005. u 12:46 - pre 225 meseci
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
 
Odgovor na temu

mb_sa

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



Profil

icon Re: Povezivanje vrijednosti iz više tabela18.09.2005. u 14:42 - pre 225 meseci
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]
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

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



+3 Profil

icon Re: Povezivanje vrijednosti iz više tabela18.09.2005. u 14:55 - pre 225 meseci
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
=========
 
Odgovor na temu

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

[ Pregleda: 3132 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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