2012-12-20 2 views
1

테이블에 새 행을 삽입 한 다음 해당 행의 ID를 가져 와서 다른 테이블을 업데이트해야합니다. 이 내가 가진 무엇 :Insert 쿼리 실행 Id 실행 및 Id가있는 다른 테이블 업데이트

$leadSQL="INSERT INTO $leadsTable (leadName, leadStatus, leadDescription, leadOpportunity, leadSource, leadSourceDescription, id, leadSince, contactID) 
        VALUES ('$_POST[leadName]', '$_POST[leadStatus]', '$_POST[leadDescription]', '$_POST[leadOpportunity]', '$_POST[leadSource]', '$_POST[leadSourceDescription]','$_POST[id]','$leadSince','$_POST[contactID]')"; 
$leadQuery = mysql_query($leadSQL); 
$lastLeadID = mysql_insert_id(); 
$updateContactSQL = "UPDATE $contactsTable SET leadID = $lastLeadID WHERE contactID = $_POST[contactID]"; 
$updateContactQuery = mysql_query($updateContactSQL); 

모든이가 리드 테이블에 중복 행을 삽입하는 것을 제외하고 .. 잘 작동합니다. if 문에 업데이트 쿼리를 넣으려고했는데 samething (이것은 "무언가"를 시도하는 것이 었습니다)을 수행했습니다. $ lastID = mysql_insert_id()를 제거하면; 그것은 단지 하나의 행을 삽입하지만 분명히 연락처 테이블을 업데이트하지는 않습니다. 그래서 나는 mysql_insert_id()를 가지고 있어야한다고 확신한다. 리드 테이블에 삽입 된 행의 새 ID로 연락처 테이블을 업데이트해야합니다. 어떤 아이디어라도 대단히 감사하겠습니다.

답변

0

모든 의도와 목적에 맞게 사용해야합니다.

지방을 조금씩 다듬어보세요. 쿼리를위한 리소스 (INSERT)가 필요 없기 때문에 그 변수를 제거 할 수 있습니다. 그리고 mysql_insert_id()를 update 문에 넣었습니다.

같은

: 조언을

$leadSQL="INSERT INTO $leadsTable (leadName, leadStatus, leadDescription, leadOpportunity, leadSource, leadSourceDescription, id, leadSince, contactID) 
        VALUES ('$_POST[leadName]', '$_POST[leadStatus]', '$_POST[leadDescription]', '$_POST[leadOpportunity]', '$_POST[leadSource]', '$_POST[leadSourceDescription]','$_POST[id]','$leadSince','$_POST[contactID]')"; 
mysql_query($leadSQL); 
$updateContactSQL = "UPDATE $contactsTable SET leadID = '".mysql_insert_id()."' WHERE contactID = $_POST[contactID]"; 
mysql_query($updateContactSQL); 
+0

감사합니다,하지만 의심으로 이건 내 문제가 해결되지 않습니다. 중복 행을 삽입하는 이유는 무엇입니까? – user1916290

+0

어떤 종류의 루프입니까? 좀 더 많은 코드를 게시하십시오 ... –

+0

foreach ($ fields = $ b) {$ body = sprintf ("% 20s : % s \ n", $ b, $ _ REQUEST [$ a]); } $ _POST 데이터를 이메일로 보내는 경우에만 사용됩니다. 쿼리가 foreach 외부에 있습니다. – user1916290