최고관리자가 회원이 작성한 댓글의 여분필드(wr_6)를 수정하면 댓글 작성한 회원의 회원정보 mb_9에 wr_9 내용을 입력하고 싶은데 잘 안되네요.
본문
최고관리자가 회원이 작성한 댓글의 여분필드(wr_6)를 수정하면 댓글 작성한 회원의 회원정보 여분필드(mb_9)를 wr_9의 내용이 입력되게 하고 싶은데 잘 안되네요.
현재 댓글에서 ajax로 여분필드를 수정하게 만들어 wr_6이 DB에도 정상적으로 반영되는 것까지 확인하였습니다.
그런데 위에서도 말했듯이 최고관리자가 회원 댓글의 wr_6를 '확정'으로 수정하면 댓글 작성한 회원의 회원정보에 mb_9에 wr_9의 내용이 입력되게 하고 싶은데 초보라서 구현이 쉽지 않네요....ㅠ.ㅠ
코드 좀 봐주시기 바랍니다.
view_comment.skin.php
<select name="wr_6" id="wr_6_<?php echo $i;?>" onchange="wr6_chk('<?php echo $i;?>','<?php echo $list[$i]['wr_id'];?>',this.value);" class="form-control input-sm" style="border: 1px solid #ddd; padding: 5px; color: #333; font-size: 14px; border-radius: 5px;">
<option value="신청중"<? if($list[$i]['wr_6'] == '신청중') echo " selected "; ?>>신청중</option>
<option value="확정"<? if($list[$i]['wr_6'] == '확정') echo " selected "; ?>>확정</option>
</select>
<script>
var wr6_chk = function(wr_num,wr_id,field) {
$.ajax({
type:"post",
url:"<?php echo $board_skin_url;?>/list_up.php",
data:
{
bo_table : g5_bo_table,
wr_num : wr_num,
wr_id : wr_id,
wr_6 : field
},
dataType:"html",
success:function(res){
$("#wr_6_"+wr_num).val(res);
if(res)
alert(res+"으로 변경되었습니다");
else
alert("변경 실패");
}
});
}
</script>
list_up.php
<?php
include_once("./_common.php");
$write_table = $g5['write_prefix'].$_POST['bo_table'];
$sql = " update ".$write_table." set wr_6 = '".$_POST['wr_6']."' where wr_id = '".$_POST['wr_id']."' ";
sql_query($sql);
$sql = "select wr_6 from ".$write_table." where wr_id = '".$_POST['wr_id']."' ";
$row = sql_fetch($sql);
if($row['wr_6'])
echo $row['wr_6'];
else
echo '';
if($_POST['wr_6']=="확정"){
$wr_9 = $_POST['wr_9'];
$member['mb_id'] == $list[$i]['mb_id'] ;
$sql2="update {$g5['member_table']} set mb_9 = '$wr_9' where mb_id='{$member['mb_id']}'";
sql_query($sql2);
$sql2 = "select mb_9 from {$g5['member_table']} where mb_id = '{$member['mb_id']}' ";
$row = sql_fetch($sql2);
if($row['mb_9'])
echo $row['mb_9'];
else
echo '';
};
?>
답변 2
<?php
include_once("./_common.php");
$write_table = $g5['write_prefix'].$_POST['bo_table'];
$sql = " update ".$write_table." set wr_6 = '".$_POST['wr_6']."' where wr_id = '".$_POST['wr_id']."' ";
sql_query($sql);
// wr_9, 작성자 아이디 값도 같이 뽑아냄.
$sql = "select wr_6,wr_9,mb_id from ".$write_table." where wr_id = '".$_POST['wr_id']."' ";
$row = sql_fetch($sql);
if($row['wr_6'])
echo $row['wr_6'];
else
echo '';
if($_POST['wr_6']=="확정"){
// 위에서 select
//$wr_9 = $_POST['wr_9'];
//$member['mb_id'] == $list[$i]['mb_id'] ;
$sql2="update {$g5['member_table']} set mb_9 = '".$row['wr_9']."' where mb_id='".$row['mb_id']."'";
sql_query($sql2);
$sql2 = "select mb_9 from {$g5['member_table']} where mb_id = '".$row['mb_id']."' ";
$row2 = sql_fetch($sql2);
if($row2['mb_9'])
echo $row2['mb_9'];
else
echo '';
};
?>
$row2 같은 경우엔 mb_9에 저장한 값을 다시 불러니 딱히 필요가 없을것 같습니다.
!-->
$member['mb_id'] == $list[$i]['mb_id'] ;
이부분이 조금 이상해 보이네요.
$list[$i]['mb_id'] 값은 아마 비어 있을것 같고 == 도 두개가 들어가 있네요.
그리고
$wr_9 = $_POST['wr_9'];
이 부분도 post로 넘어오는 wr_9 값은 없어보이네요.
위에 있는
$sql = "select wr_6 from ".$write_table." where wr_id = '".$_POST['wr_id']."' ";
이 쿼리에서 mb_id와 wr_9 값도 같이 가져와서 이걸로 처리해야 하지 않을까싶네요.
$sql = "select mb_id, wr_6, wr_9 from ".$write_table." where wr_id = '".$_POST['wr_id']."' ";
이렇게 불러와서
$wr_9=$row['wr_9'];
$mb_id=$row['mb_id'];
이렇게 처리해서 쿼리를 짜셔야 할것 같습니다.
그리고 그누보드에서는 현재 로그인돼 있는 분의 정보를 $member 변수에 담고 있습니다.
이렇게 사용되고 있는 변수에 덮어서 변수를 사용하시게 되면 나중에 유지보수 할때나
수정하실때 헷갈릴수 있으니 다른 변수를 사용하시는걸 추천드립니다.