sql 질문 하나 더 드립니다 ㅠㅠ
본문
글 '수정시'
현재 wr_15의 값이 정상적으로 변경되고 있습니다.
g5_member 테이블에서 mb_id 값을 wr_15 로 받아서 등록하고 있습니다.
수정시
write_update.skin.php 에서 g5_member 테이블의 값도 함께 변경하는 쿼리문을 알고 싶습니다.
if($w == u){
$sql3 = "update g5_member set mb_id = '$wr_15' where mb_id = '$wr_15'";
sql_query($sql3);
}
지금은 이런식으로 해봤는데 동작을 안하네요..
where 부분에서 공통되는 부분이 mb_id 라서 이게 같은 값을 찾아서 변경해주고 싶습니다.
답변 6
1. 수정한 wr_15 업데이트
UPDATE `테이블` SET `바꿀필드` = '바꿀값' WHERE `대상조건필드` = '기존값'
UPDATE g5_member SET mb_id = '{$wr_15}' WHERE `mb_id` = '{$member['mb_id']}'
-- 단 UNIQUE KEY 인 mb_id 는 그 값이 테이블 내에서 중복이있으면 안되므로 업데이트 실패상황 대비 필요.
2. 쿼리부 정상처리 확인 후 세션 수정
<?php
// common.php : $member 관련 부분 참조
// bbs/login_check.php : set_session 하는 부분 참조
set_session('ss_mb_id', $wr_15);
?>
앞뒤 내용이 있으면 좀 쉬울 텐데요.
$sql3 = "update g5_member set mb_id = '$wr_15' where mb_id = '$wr_15'";
이건 아무 의미없는 query입니다.
--
수정시
write_update.skin.php 에서 g5_member 테이블의 값도 함께 변경하는 쿼리문을 알고 싶습니다.
==>
g5_member의 어떤 컬럼의 값을 바꾼다는 것일까요?
기존의 mb_id의 값을 알고 있어야 정상적으로 수정이 될 것 같습니다.
$sql3 = "update g5_member set mb_id='".$wr_15."' where mb_id='".$기존의 mb_id."'";
이렇게 되어야 정상적으로 동작됩니다.
g5_member의
mb_id : 전화번호
게시판테이블의 wr_15 : 전화번호
라고 하셨는데
기록된 전화번호가 *** 개인정보보호를 위한 휴대폰번호 노출방지 *** 라고 할경우
전화번호를 *** 개인정보보호를 위한 휴대폰번호 노출방지 *** 로 변경한다고하면
넘어온값에 해당된느 wr_15를
기존에 mb_id와 비교할값이 where 의 mb_id = '비교할값' 으로 되어야합니다.
변경할값인 wr_15로 아무리 비교해서 mb_id에 넣는다고 해도
g5_member에 들어있는 mb_id는 존재할경우 동일한 ID로 넣는것이라서
변경은 하지만 변화가 없습니다.
다시말해
기존 게시물을 작성한 ID값이
g5_write_게시물 테이블의 작성자 mb_id의 값이 '*** 개인정보보호를 위한 휴대폰번호 노출방지 ***' 로 들어있는경우
g5_member의 mb_id 값을 g5_write_게시물의 wr_15 가 변경된 값으로 바꾸고 싶으시다는것으로 이해하고 다시 설명을 드리면
write_update.skin.php파일에서
이 시점은 위의 게시물을 이미 변경한 시점이되기때문에
$write['mb_id']에는 기존 ID가 들어있을것이고
$write['wr_15'] 에는 작성자가 수정한 전화번호가 들어가게되겠죠
(위의 내용이 아니라면 $write가 아니더라도 form으로 넘기는 값을 확인해보세요)
위 내용이라고 가정하고
$sql = "update g5_member set mb_id = '{$write['wr_15']}' where mb_id ='{$write['mb_id']}' ";
sql_query($sql);
이 됩니다.
이 답변이 100% 그대로 사용하실것이 아니라. 예를 들어설명드린것이기때문에
맞는지 체크하면서 수정/활용하세요
글을 등록?하면 자동?으로 회원 가입이 되는 기능이 있나 봅니다.
글을 수정하려면 로그인 상태?여야 할 테고
그 상태에서 글을 수정한다고 하면
write_update.skin.php
$sql3 = "update g5_member set mb_id = '$wr_15' where mb_id = '{$member['mb_id']}'";
이후 세션 변수(아이디 등) 도 변경해 주어야 합니다.
$sql3 = "update g5_member set mb_id = '$wr_15' where mb_id = '$write['mb_id']'";