DB의 동일한 값이 있으면 update 하고, 동일값이 없으면 insert 하려고 하는데요..도와주세요~~ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

DB의 동일한 값이 있으면 update 하고, 동일값이 없으면 insert 하려고 하는데요..도와주세요~~ 정보

DB의 동일한 값이 있으면 update 하고, 동일값이 없으면 insert 하려고 하는데요..도와주세요~~

본문

그누보드의 write.php를 사용하는건 아니고, 좀 다른것입니다.
잘 몰라서 문의드립니다..

DB 입력시 insert 와 update를 구분하여 넣어 주고 싶습니다.
입력값을 DB에 insert만 하면 문제없이 잘 됩니다. 그런데
입력값을 넘겨받아 그 값이 DB에 이미 존재하면 insert가 아니라 update 를 하려고 합니다.

반복문으로 DB값을 한 라인씩 읽어들이면서
만일 동일한 값(wr_title)을 발견하지 못했다면 insert 구문을 실행하고
만일 동일한 값(wr_title)를 발견했다면 update를 합니다.(where wr_id 가 같은것으로)

여기서 질문입니다.
update를 할때 한번만 update 실행하고 빠져나와야 합니다. (break 사용)
이게 잘안됩니다. (break 구문에서 잘 안됩니다)
반복문 내에서 echo로 출력하여 동일한것이 있을 시 한번만 echo 뿌려주고 탈출.
이것은 잘 테스트가 되빈다.
echo 테스트는 잘되는데 insert, update는 안됩니다.

어떻게해야 insert 혹은 update 를 한번만 하고 빠져 나올수 있나요?
break 를 사용하는 위치가 맞나요? 아니면 break가 아닌 다른 명령어를 사용해야하나요?
잘하시는 분은 아주 간단할것 같습니다. ^^

소스를 첨부합니다. 꼭 좀 봐주세요.


<?

include("./db_header.php");
$new_title='aaaaaaaaa';



//  DB에서 wr_id, wr_title 을 뽑아 옴
    $sql_dup1 = "select wr_id, wr_title from g4_test";
    $sql_dup2 = mysql_query($sql_dup1);


while ($sql_dup3 = mysql_fetch_array ($sql_dup2))
{
$sql_dup_id= $sql_dup3[wr_id];
$sql_dup_title= $sql_dup3[wr_title];

    // DB의 wr_title과 새로 넘겨주는 new_title를 비교하여 값이 다르면
  if (new_title != $sql_dup_title)     
        {
          $query = "insert 실행";  // DB에 insert 작업
          $result= mysql_query($query, $connect);
                if ($result)
                    { 
                          echo "1"; 
                    }
                break; // 한번만 실행하고 빠져나옴
          }
    else
        {
            // title 값이 같으면 DB에 update 작업
              $query_up = " update 실행 "; 
              $result_up= mysql_query($query_up, $connect);
  if ($result_up)
        {
            echo "1";
                        }
                  break;  // 한번만 실행하고 빠져나옴
 
      } //else 종료
} //while 종료

mysql_close($connect);
?>

댓글 전체

쿼리 자체를 저렇게 줄 필요가 없지 않나요 저러면??
select wr_id, wr_title from g4_test where sql_dup_title = '$new_title'

처음 불로올 쿼리를 이렇게 짜면 뒤에 if 문을 많이 줄일 수 있지 싶네여
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT