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

Povezivanje tablica u MYSQL-u

[es] :: PHP :: Povezivanje tablica u MYSQL-u

[ Pregleda: 1989 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Povezivanje tablica u MYSQL-u27.06.2008. u 16:18 - pre 192 meseci
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)
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Povezivanje tablica u MYSQL-u27.06.2008. u 18:35 - pre 192 meseci
Probaj ovako:

Code:

mysql_query("SELECT kategorija.*, spread.* FROM category AS kategorija INNER JOIN spread AS spread ON kategorija.category_id = spread.category_id
 
Odgovor na temu

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Re: Povezivanje tablica u MYSQL-u29.06.2008. u 08:50 - pre 192 meseci
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.
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Povezivanje tablica u MYSQL-u29.06.2008. u 12:10 - pre 192 meseci
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]
 
Odgovor na temu

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Re: Povezivanje tablica u MYSQL-u29.06.2008. u 13:24 - pre 192 meseci
Ne radi, ne ispiše ime usera, moram staviti LIMT 1 jer ih opet više ispiše.
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Povezivanje tablica u MYSQL-u29.06.2008. u 19:19 - pre 192 meseci
Pa zar ti "spread.id" nije UNIQUE polje ?!?! Bar sam pretpostavio da jeste ....
 
Odgovor na temu

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Re: Povezivanje tablica u MYSQL-u29.06.2008. u 21:59 - pre 192 meseci
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");
 
Odgovor na temu

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Re: Povezivanje tablica u MYSQL-u04.07.2008. u 12:18 - pre 192 meseci
A kako ih spojiti kad su tri tablice ili više, molim za neki jednostavan primjer!?
Hvala
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Povezivanje tablica u MYSQL-u04.07.2008. u 12:42 - pre 192 meseci
A da mysql pitanja probas da postavis na mysql forumu?
Mislim da ces daleko pre dobiti odgovor o upitima tamo nego ovde ;)

 
Odgovor na temu

[es] :: PHP :: Povezivanje tablica u MYSQL-u

[ Pregleda: 1989 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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