[ feniks-sd @ 21.07.2010. 00:59 ] @
Imam bazu podataka koja ima tri tablice, members, pm_recipients , personal_messages.
Sql dump sa postavio ovdje http://pastebin.com/UEy3weUf i kao attacment.

U tablici members nalaze se podaci o članovima.
Trebam unjeti podatke u tablicu pm_recipients , personal_messages .

Malim pogledom u strukturu tablica vidimo da se u tablici "personal_messages" nalaze podaci o privatnim porukama, njihov sadržaj , naslov , od koga je poruka i slično.
U tablici "pm_recipients" nalaze se podaci o tome kome je poruka namjenjena.

Želim da unesem podatke u tablicu "personal_messages", potrebni su samo polja "subject" i "body", polje "id_member" što predstavlja
primarni ključ iz tablice "members" .
Prilikom unosa nije mi poznat taj "id_member" već "member_name". Šo znaći da treba pročitati koji je to id s obzirom na "member_name".

Drugi unos treba da ide u tablicu "pm_recipients". potrebno je unjeti polja "id_pm" što predstavlja primarni ključ "id_pm" iz predhodno unjetog polja u tablicu "personal_messages".

Malo je sve ovo presloženo pa nažalost bojim se da možda netko i neće shvatiti što želim . Nastojat ću dat dodatna objašnjenja ako bude nejasno.



[ Shinhan @ 21.07.2010. 07:37 ] @
Ovo nisam testirao ali bi trebalo da radi. Vidi INSERT...SELECT u dokumentaciji.

Code:

INSERT INTO personal_messages (subject, body, id_member)
SELECT "ovdesubject", "ovdebody", id_member
FROM members
WHERE member_name = "membername"


Nakon što se gornji query izvrši, koristiš mysql_insert_id() ako koristiš PHP, ili ekvivalentnu funkciju u jeziku koji koristiš, i normalno insertuješ u pm_recipients.
[ feniks-sd @ 22.07.2010. 14:26 ] @
Kada mi je SQl upit ovakav , onda radi .

Code:
$sql_pm = "INSERT INTO {$db_prefix}pm_recipients (`id_pm`, `id_member`,`labels`,`bcc`,`is_read`,`is_new`,`deleted`)
VALUES ($last_id, '2'  , '-1','0', '0', '1', '0') " ;


a kada ga malo modificiram onda mi prijavi grešku u sintaksi.


Code:
$member="tirkiz"
$sql_pm = "INSERT INTO {$db_prefix}pm_recipients (`id_pm`, `id_member`,`labels`,`bcc`,`is_read`,`is_new`,`deleted`)
VALUES ($last_id, id_member FROM {$db_prefix}members WHERE member_name = '$member'  , '-1','0', '0', '1', '0') " ;


/* Može li netko pomoći. */
[ bogdan.kecman @ 22.07.2010. 16:21 ] @
Code:

$sql_pm = "INSERT INTO {$db_prefix}pm_recipients (`id_pm`, `id_member`,`labels`,`bcc`,`is_read`,`is_new`,`deleted`)

ovo je ok

Code:

VALUES ($last_id, id_member FROM {$db_prefix}members WHERE member_name = '$member'  , '-1','0', '0', '1', '0') " ;


ovo ne valja .. ne moze VALUES FROM WHERE

mozda si hteo

Code:

SELECT $last_id, id_member , '-1','0', '0', '1', '0' FROM {$db_prefix}members WHERE member_name = '$member' " ;


tako ce da radi

dakle
Code:

$sql_pm = "INSERT INTO {$db_prefix}pm_recipients (`id_pm`, `id_member`,`labels`,`bcc`,`is_read`,`is_new`,`deleted`)
SELECT $last_id, id_member , '-1','0', '0', '1', '0' FROM {$db_prefix}members WHERE member_name = '$member' " ;

[ bogdan.kecman @ 22.07.2010. 16:23 ] @
btw, ne znam da li su ti `labels`,`bcc`,`is_read`,`is_new`,`deleted` integer ili string, posto ako su integer onda NEMOJ BROJEVE DA ZATVARAS U NAVODNIKE !!!!!!!!!!!!!!!! tako brojeve pretvoris u STRING