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

Dvostruki query na 2 razlicite mysql tabele

[es] :: PHP :: PHP za početnike :: Dvostruki query na 2 razlicite mysql tabele

[ Pregleda: 1169 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Horvat

Član broj: 17332
Poruke: 3042
dynamic-78-30-135-49.adsl.eunet.rs.



+165 Profil

icon Dvostruki query na 2 razlicite mysql tabele05.11.2009. u 14:05 - pre 176 meseci
nesto pravim i zapeo sam,stao mi mozak,a ni ne mogu adekvatno resenje [tj ni priblizno] da nadjem na google,pa reko' mozda vi mozete pomoci...

naime problem je sledeci

postoje 2 tabele,jedna tabela je sa proizvodima,druga sa korisnicima
u tabeli sa proizvodima postoji id korisnika koji je taj proizvod stavio,a ne postoji nickname

ja zelim da pri listanju proizvoda izbaci nickname [tj da ga iscita iz tabele korisnika pomocu "where" komande izjednacavajuci id-e]

deo koda koji to resava izgleda ovako nekako,ali ovo ne radi [tj ne radi onaj deo za ispisivanje nick-a]

Code:

$sql = "SELECT * FROM products WHERE cat_id='$cat_ident'";


$result = mysql_query($sql) or die(mysql_error()); 

if (mysql_num_rows($result)>0)
{    
    
    echo "<table border=\"0\" align=\"center\">";
   {
        while ($record = mysql_fetch_array($result))
        
        
        echo "<tr><td height=\"150\" width=\"150\" align=\"center\"><img src=\"$record[pic]\"></td><td width=\"200\" align=\"center\">$record[title]</td><td align=\"center\" width=\"100\">$record[lastprice] <u>$record[currency]</u></td>";

       
       $u_id = $record[seller_id];
    
    $sql_u = "SELECT username FROM user WHERE id=$u_id" ; 
    $user_res = mysql_query($sql_u) or die(mysql_error()); 
    if (mysql_num_rows($result)>0)
    while ($record = mysql_fetch_assoc($user_res))
    $nick = $record[username];
    echo "<td align=\"center\" width=\"200\">$nick </td></tr>";      
   }
   


[$cat_ident je zadat ranije]

kada umesto
"$u_id = $record[seller_id]" ispisem id korisnika [primer: "$u_id = '2';" dobijem nick...

nesto sam gadno zeznuo...ali ne mogu da pronadjem gresku,a znam da je neka trivijalna :S

e,da,zaboravih,probao sam i
Code:

    
    $sql_u = "SELECT username FROM user WHERE id=  $record[seller_id]" ; 
    $user_res = mysql_query($sql_u) or die(mysql_error()); 
    if (mysql_num_rows($result)>0)
    while ($record = mysql_fetch_assoc($user_res))
    $nick = $record[username];
    echo "<td align=\"center\" width=\"200\">$nick </td></tr>";      
   }
   


ali ni tako nece
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.adsl.beotel.net.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Dvostruki query na 2 razlicite mysql tabele05.11.2009. u 14:13 - pre 176 meseci
Ti ces ovde jednim upitom koji vadi 50 proizvoda imati 50 upita na bazu za username :(
najgori moguci pristup, ono, osnove programiranja spominju da upiti ne idu u petlje ukoliko to baaas ne mora. a ovde def ne mora, jedan JOIN (recimo left) bi ti sve ovo resio.
Pretpostavljam da u ovom delu

Code:

    echo "<table border=\"0\" align=\"center\">";
   {
        while ($record = mysql_fetch_array($result))

Ovaj 'viticasta' zagrada ide IZa while.
 
Odgovor na temu

Horvat

Član broj: 17332
Poruke: 3042
dynamic-78-30-135-49.adsl.eunet.rs.



+165 Profil

icon Re: Dvostruki query na 2 razlicite mysql tabele05.11.2009. u 14:16 - pre 176 meseci
da,to je problem,sto bi bilo mali milion upita,mozda bolje da se username upisuje u tabelu sa proizvodima,a ne id,pa da iscitava samo tabelu proizvoda

:blush: join kojih podataka?

opa,zagrada je zalutala tamo,hvala
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.adsl.beotel.net.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Dvostruki query na 2 razlicite mysql tabele05.11.2009. u 14:24 - pre 176 meseci
Pa to je jos gore resenje, mozda ne ovde jer username nece tako cesto da se menja, ali kao buduca praksa definitivno najgore resenje. Zato i postoje tabele u bazama, sve bi se trpalo u jednu inace. Pogledaj optimizaciju baza, i pogledaj Join sto sam ti spomenuo u prethodnoj poruci, sve ce ti biti jasno. imaces jedan upit, i dve tabele, i sve sto ti treba u jednoj petlji.
 
Odgovor na temu

Horvat

Član broj: 17332
Poruke: 3042
dynamic-78-30-135-49.adsl.eunet.rs.



+165 Profil

icon Re: Dvostruki query na 2 razlicite mysql tabele05.11.2009. u 14:26 - pre 176 meseci
pa tom logikom sam se i vodio,jer je id jedinstven i ne uticu promene podataka korisnika na njega

pogledacu join malo kasnije

hvala ti :)

edit:hvala hvala hvala!!
kako trivijalno i efikasno :))



[Ovu poruku je menjao Horvat dana 05.11.2009. u 16:32 GMT+1]
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Dvostruki query na 2 razlicite mysql tabele

[ Pregleda: 1169 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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