2014-04-10 3 views
0

이것은 어리석은 질문 일 수도 있지만 솔직히 저를 곤혹스럽게합니다.SQL 테이블에 새 항목을 추가하고 이전 항목을 업데이트해야합니다.

새로운 항목으로 업데이트하려는 기존 테이블이 있습니다. 그러나 이전 항목이 다른 곳에서 변경된 경우이 항목도 자동으로 업데이트되기를 바랍니다.

$ eid를 고유 한 식별자로 설정하여 테이블을 복제하지 않도록했습니다. 나는 이것을 사용하여 새로운 아이템을 추가한다.

mysqli_query($con,"INSERT INTO `notification` (`nid` ,`eid` ,`subject` ,`active` ,`date`)VALUES (NULL , '$eid[$i]', '$subject[$i]', '$active[$i]', '$eventdate[$i]')"); 

두 번째 쿼리에서 기존 테이블을 현재 업데이트 된 정보로 업데이트하려고합니다.

mysqli_query($con,"UPDATE `notification` SET `nid`=NULL,`eid`='$eid[$i]',`subject`='$subject[$i]',`active`='$active[$i]',`date`='$eventdate[$i]' WHERE `active` = 0"); 

그러나이 두 번째 쿼리는 제대로 작동하지 않는 것 같습니다.

답변

1

MySQL이 던진 오류에 대한 자세한 내용은?

그러나 nid 열이 기본 키인 경우 NULL이 될 수 없습니다.

방금 ​​업데이트 쿼리를 건너 뛰을 업데이트하지 않으려면 :

mysqli_query($con,"UPDATE `notification` SET `eid`='$eid[$i]', 
`subject`='$subject[$i]',`active`='$active[$i]',`date`='$eventdate[$i]' 
WHERE `active` = 0"); 
+0

나는 당신의 도움에 솔루션 덕분에 알아 냈어. 두 번째 쿼리가 필요했습니다 ... mysqli_query ($ con, "UPDATE'알림'SET'subject' = '$ subject [$ i]', 'active' ='$ active [$ i] 'date' = '$ eventdate [$ i]'어디서'eid' = $ eid [$ i] '); – user3515417

0

시도,

mysqli_query($con,"UPDATE notification SET nid= '',eid='".$eid[$i]."',subject='".$subject[$i]."',active='".$active[$i]."',date='".$eventdate[$i]."' WHERE active = '0'"); 
관련 문제