update query dintr-un tabel in altul

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Moderatori: Zamolxe, Moderatori

davone20
PHPRomania Supporter
Mesaje: 6
Membru din: Dum Mai 29, 2011 11:40 am

update query dintr-un tabel in altul

Mesajde davone20 » Mie Iun 08, 2011 9:23 am

Ma chinui de cateva zile si nu am gasit nici o solutie, am mai postat si nimeni nu mi-a dat un raspuns concludent, nu ma ajutat nici un raspuns, poate ca nu m-am facut destul de inteles...

Am doua tabele register_members si friend

Structura tabelelor sunt:


tabel "register_members"


x-----ID------x-----USERNAME------x-----IMAGINE--------x
x-----1-------x------test1--------x---avatar/bg1.jpg---x
x-----2-------x------test2--------x---avatar/bg1.jpg---x
x-------------x-------------------x--------------------x


tabel "friend"


x-----ID------x-------USERNAME---x-------FNAME-------x-----IMAGINE------x
x-----1-------x--------test1-----x-------TEST2-------x--avatar/bg1.jpg--x
x-----2-------x--------test2-----x-------TEST1-------x--avatar/bg.jpg---x
x-------------x------------------x-------------------x------------------x



$add3 = mysql_query("UPDATE friend f SET f.image = rm.image FROM friends AS f INNER JOIN register_members AS rm ON f.id = rm.id WHERE f.username = '$_SESSION[username]' AND rm.username = '$_SESSION[username]'");
$add4 = mysql_query("UPDATE friend f SET f.image = rm.image FROM friend AS f INNER JOIN register_members AS rm ON f.id = rm.id WHERE f.username = '$_GET[username]' AND rm.username = '$_GET[username]'");


Vreau sa fac update din tabelul "register_members" in tabelul "friend" field-ul "IMAGINE" dar la WHERE sa fie WHERE username=$_SESSION[username]..si nu-mi face update deloc, nu mai stiu cum sa fac, unde am gresit...va rog mult ajutati-ma, spuneti-mi cum sa fac ce anume sa inlocuesc la mysql_query ca sa poata face update dintr-un tabel in altul. Multumesc!

Sper ca de data asta m-am facut destul de inteles.



dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Mie Iun 08, 2011 11:52 pm

E mai simplu decat incerci

Cod: Selectaţi tot

UPADTE friend f, register_members rm
  SET f.imagine = rm.imagine
WHERE f.id = rm.id AND f.username = $username

Am vazut in codul tau ca legatura intre tabele este dupa ID dar ma indoiesc ca este asa, deoarece un user poate avea mai multi prieteni.

Campul de legatura cred ca este username altfel rm.username este informatie redundanta si nu-i vad rostul (nu simplifica select-urile prea mult). In acest caz query devine:

Cod: Selectaţi tot

UPADTE friend f, register_members rm
  SET f.imagine = rm.imagine
WHERE f.username = rm.username AND f.username = $username


Înapoi la “MySQL”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 26 vizitatori