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);
?>
잘 몰라서 문의드립니다..
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 문을 많이 줄일 수 있지 싶네여
select wr_id, wr_title from g4_test where sql_dup_title = '$new_title'
처음 불로올 쿼리를 이렇게 짜면 뒤에 if 문을 많이 줄일 수 있지 싶네여

테이블 a, b가 있고
a.title이 b에 없으면 insert하고, 있으면 update하는 건가요?
a.title이 b에 없으면 insert하고, 있으면 update하는 건가요?