즐거운 한가위 되세요~ 채택완료
order 게시판 write.update.skin에
$sql = "INSERT INTO g5_abc( mb_id, wr_name, wr_subject, wr_id, in_qty, wr_datetime ) VALUES(
'".$mb_id."', '".$wr_name."', '".$wr_subject."', '".$wr_id."', '".$in_qty."', '".G5_TIME_YMDHIS."' )"; sql_query($sql);
이렇게 하여 g5_abc 테이블에 별도로 집어넣고 있습니다.
그런데 게시판 글을 수정하면 위의 필드에는 변동이 없는데 수정할때마다 g5_abc테이블에 idx가 늘어나면서 기록되고 있습니다.
어떻게 해야 order게시판에서 g5_abc테이블에 위의 내용을 처음에는 insert시킨뒤에 같은 wr_id의 데이터는 업데이트를 시킬 수 있을까요?
답변 2개
기준이 되는 테이블(게시판)에 데이터를 넣었을때 g5_abc (두번째 게시판)에도 저장이 되며
이 두 테이블 데이터가 동일해야한다는 말씀인가요?
왜 그런 구성을 하는지는 모르겠지만, 글이 삭제될경우에도 처리해줘야할텐데요.
구현을 하자면
처음글이 등록될때 기준이 되는 테이블의 키값 (wr_id) 을 따로 두번째 테이블 여분필드에 저장시킵니다. 꼭 여분필드가 아니라 그냥 그대로 insert해도 무방합니다.
두 게시판은 이 키값으로 서로 물려있겠죠. (wr_id)
글을 저장할때 무조건 insert가 아닌 키값으로 select 하여 데이터가 없으면 insert
데이터가 있다면 update를 하는 형식이 되어야 겠네요.
답변에 대한 댓글 3개
from g5_abc
where wr_id = '$wr_id'
";
$result = sql_query($sql);
$row=sql_fetch_array($result);
if ( $row['exist'] ){
$rs = sql_query(" update g5_abc set ~~ where wr_id = '$wr_id' ");
}else{
$sql = "insert g5_abc poll
set ~~
";
$rs = sql_query($sql);
}
if( $rs == 1) 성공~
이런형태가 되겠죠..
댓글을 작성하려면 로그인이 필요합니다.
테이블을 새로 만드시는게 낫습니다.
idx int auto_increment primary key ,
로 선언된경우
임의의 값을 넣는것도, 변경하는것도 안됩니다.
1. 테이블 복제해서 하나 만들어두시고
(g5_abc와 동일한 테이블을 새로 생성후 insert)
2. g5_abc 구조 복제후 기존, g5_abc drop
3. 위의 두가지를 한번에 해결하는건 g5_abc의 테이블 이름을 다른것으로 변경하는것도 방법입니다.
4. 새로운 g5_abc를 생성하되
idx int , <-- 이렇게만 사용하시고
글 작성후
(select max(idx)+1 from g5_abc)
형태로 순번을 증가시키거나 임의의 값으로 추가하시거나 하시면됩니다.
답변에 대한 댓글 2개
idx int auto_increment primary key , 오토인크리즈먼트로 선언되었습니다.
테스트 테이블이라 날리고
그러면 테이블 새로 만들때
idx 필드는 넣지말고
'".$mb_id."',
'".$wr_name."',
'".$wr_subject."',
'".$wr_id."',
'".$in_qty."',
'".G5_TIME_YMDHIS."'
이 필드만 넣고
글 수정시에 값이 인서트되는데...
이후 게시물 수정시에 인서트가 아니라
업데이트를 시켜야 하는데
어떻게 하라는 말씀이신지요?
insert 후에 update를 하면 키를 잡을 대상이 많아 집니다.
따라서
insert 수행전에
$sql = "select max(idx)+1 as nextidx from g5_abc";
$row = sql_fetch($sql);
를 하여
$sql = "INSERT INTO g5_abc(idx,
mb_id, wr_name, wr_subject, wr_id, in_qty, wr_datetime ) VALUES(
'".$row['nextidx']."',
'".$mb_id."',
'".$wr_name."',
'".$wr_subject."',
'".$wr_id."',
'".$in_qty."',
'".G5_TIME_YMDHIS."'
)";
로 하시면 됩니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
이 두 테이블 데이터가 동일해야한다는 말씀인가요?
맞습니다...
g5_abc는 게시판은 아니구요 그냥 만든 필드몇개만 들어있는 테이블입니다.
order게시판의 wr_id는 g5_abc에 insert 시켜서 값이 있습니다.
글을 저장할때 무조건 insert가 아닌 키값으로 select 하여 데이터가 없으면 insert
데이터가 있다면 update를 하는 형식이 되어야 겠네요. <--맞습니다.
그런데 코드를 짤줄 몰라서요,,도움이 필요합니다.