• 8 odgovora
  • 2.752 pregleda
Povezivanje tablica u MYSQL-u 27.06.2008. u 16:18 · pre 223 meseci #1
imam tablicu category i tablicu spread.

na početnoj se ispiše sadržaj iz tablice category, ta tablica ima polje "category_id" , i sad bi trebao povezati sa tablicom spread, jer ona isto ima category_id! Evo kako sam pokušao zasad a nije išlo!
index.php
Code:

<a href='category.php?category_id=".$result['category_id']."'>". $result['category_name'] ."</a>


category.php
Code:

 <?php 
    
    if ($_GET){
    
    $category_id=$_GET['category_id'];
    }
    else {echo'podaci nisu pravilno dohvačeni';}
     
         
         $rs=db_query("SELECT category.supercategory_id, category.category_id, category.category_name, spread.id, spread.category_id, spread.supercategory_id, spread.naselje_id, spread.regija_id, spread.jezik_id, spread.naslov AS SHead, spread.opis, spread.adresa FROM category, spread WHERE spread.category_id='$category_id'");

    if ($rs){    
    while ($result = mysql_fetch_array($rs, MYSQL_ASSOC)){
    echo $result['SHead'];
    


         }
         }else {echo'Došlo je do greške kod ispisa';
         }
         
         
         ?>    


Stavio sam za probu ispis naslova spread-a (oglasa)
Re: Povezivanje tablica u MYSQL-u 27.06.2008. u 18:35 · pre 223 meseci #2
Probaj ovako:

Code:

mysql_query("SELECT kategorija.*, spread.* FROM category AS kategorija INNER JOIN spread AS spread ON kategorija.category_id = spread.category_id
Re: Povezivanje tablica u MYSQL-u 29.06.2008. u 08:50 · pre 223 meseci #3
Ono sam rješio, sad imam drugačiji primjer, tj. PROBLEM

Code:

if ($_GET){
    
    $id=$_GET['id'];
    
    $rs = db_query("SELECT spread.id, spread.naslov, spread.opis, spread.cijena, spread.created, spread.grad, spread.drzava, spread.user_id FROM spread WHERE spread.id='$id'");

    while ($row = mysql_fetch_array($rs)) { 
    
    $red = db_query("SELECT user.id, user.ime, user.email, user.telefon FROM user WHERE id=".$row['user_id']); 
    
    while ($result = mysql_fetch_array($red)){


Pojašnjenje ukratko o čemu se radi:

Opet se radi o dvije tablice(spread, user), na jednoj stranici se ispiše popis oglasa(iz tablice spread) i podatki o njima ukratko i nakon klika na njih odvede vas na stranicu di vam ispiše detalje o tom oglasu, podatke o oglasu iz tabele spread i podatke u korisniku koji je napisao oglas iz tabele user. A user_id iz tabele spread je isto ko i id iz tabele user.

spread
id | naslov | opis | cijena | created | ... | user_id

user
id | ime | email | telefon | ...

Evo, trudio sam se ali nisam uspio, jer mi sad ispiše ovaj jedna oglas onoliko puta koliko taj korisnik ima oglasa.
Ako netko vidi gdje sam pogriješio neka mi objasni gdje i zašto a ako netko misli da zna jednostavniji način da se to izvede opet neka kaže.
Re: Povezivanje tablica u MYSQL-u 29.06.2008. u 12:10 · pre 223 meseci #4
Al si ga zakomplikovao brate :-)

Ovako bi trebalo:

Code:

 
    $rs = db_query("SELECT spread.id, spread.naslov AS naslov, spread.opis AS opis, spread.cijena AS cena, spread.created, spread.grad, spread.drzava, spread.user_id, korisnik.* FROM spread INNER JOIN user AS korisnik ON spread.user_id = korisnik.id WHERE spread.id='$id'");
  
   // Sad dobijas taj oglas + podatke o user-u u jednom redu
   while ($row = mysql_fetch_array($rs, MYSQL_ASSOC))
   { 
     echo $row['naslov']. " ".$row['opis']." ".$row['cena']." ". $row['korisnik.ime']; // I tako dalje :-)
   }






[Ovu poruku je menjao Man-Wolf dana 29.06.2008. u 13:24 GMT+1]
Re: Povezivanje tablica u MYSQL-u 29.06.2008. u 13:24 · pre 223 meseci #5
Ne radi, ne ispiše ime usera, moram staviti LIMT 1 jer ih opet više ispiše.
Re: Povezivanje tablica u MYSQL-u 29.06.2008. u 19:19 · pre 223 meseci #6
Pa zar ti "spread.id" nije UNIQUE polje ?!?! Bar sam pretpostavio da jeste ....
Re: Povezivanje tablica u MYSQL-u 29.06.2008. u 21:59 · pre 223 meseci #7
Rješeno(Zahvaljujući Man-Wolf-u):

Code:

$rs = db_query("SELECT spread.id, spread.naslov AS naslov, spread.opis AS opis, spread.cijena AS cijena, spread.created AS created, spread.grad AS grad, spread.drzava AS drzava, spread.user_id, korisnik.id AS id_korisnika, korisnik.ime AS ime_korisnika, korisnik.email AS email_korisnika, korisnik.telefon AS telefon_korisnika, korisnik.* FROM spread INNER JOIN user AS korisnik ON spread.user_id = korisnik.id WHERE spread.id='$id' LIMIT 1");
Re: Povezivanje tablica u MYSQL-u 04.07.2008. u 12:18 · pre 222 meseci #8
A kako ih spojiti kad su tri tablice ili više, molim za neki jednostavan primjer!?
Hvala
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme