Pagina 1 din 1

[Intrebare] last_insert_id()

Scris: Lun Mar 19, 2012 4:58 pm
de dlsmoker
Am doua tabele:
'users'
-> id auto-increment primary key,
->username,
->email

'info'
->id auto-increment primary key,
->user_id foreign key references users(id),
->address,
->city

Printrun form vreau sa trimit 2 date in tabela 'users', adica username si email, si 2 date in tabela 'info', adica adresa si orasu.
Odata ce formu a fost completat si trimis, info.user_id trebuie sa aiba aceiasi valoare ca si users.id. Am folosit last_insert_id() dar am observat ca rezulta egal cu id-ul tabelei info si nu users. Cum fac ca daca un nou user trimite formularu si acesta are id 5, in tabela info in campul user_id tot 5 sa intre chiar daca aici id-ul este divers? Se poate sau trebuie sa scot id-ul AI din info?

Vroiam sa stiu daca convine sa declar o variabila dupa primul query unde sa pastrez valoarea last_insert_id(), dar cineva spunea ca daca cumva este vreo problema cu server-u, atunci acea valoare nu mai este de incredere.

Sper ca s-a inteles problema. Multumesc

Scris: Lun Mar 19, 2012 5:10 pm
de bsorin
depinde în ce ordine faci insert-urile. introdu întâi în users, după care introduci în info:

mysql_query("inert into users set username = '{$username}', email = '{$email}'");

mysql_query("insert into info set user_id ='" . mysql_insert_id() . "', address = '{$adresa}', city = '{$city}'");

Scris: Lun Mar 19, 2012 6:24 pm
de dlsmoker

Scris: Lun Mar 19, 2012 7:29 pm
de MarPlo
Salut
Daca vrei ca in tabelul 'info' sa foloseste id-ul din "users", la "info" trebuie fara auto_increment, si adaugi direct valoarea data de mysql_insert_id() , dupa Insert in "users".
- mysql_insert_id() returneaza valoarea returnata de ultima comanda Insert, efectuata inainte de interogarea in care-l folosesti.