sql 쿼리 관련 질문합니다. 채택완료
보기 싫은 댓글 차단하는 코딩중에서, 내가 차단한 댓글만 안보이게 하기.
오류 : 차단버튼 누를 경우 다른사람이 차단한것까지 같이 차단되어 보이는 오류...
A라는 게시글에 b댓글 c댓글이 달렸을때.
d라는사람이 b댓글 차단
e라는 사람이 c댓글 차단 하면.
d라는 사람이 b와 c 모두 차단되어 보여짐.. b만 안보여야 함..
e도 마찬가지. b와 c 모두 차단되어 보여짐. c만 안보여야함..
조건을 어떻게 해야할지 매우 고민입니다 ㅠㅠ
---------------------------------------------------------------------------------------------
$sql = "SELECT * FROM {$g5['apms_shingo']} WHERE mb_id='{$member['mb_id']}' and wr_parent = '{$view['wr_id']}'";
$result_id = sql_fetch($sql);
if($is_member) { // 회원일때
if($member['mb_id']==$result_id['mb_id'] && $result_id['wr_parent'] == $view['wr_id']){
$shingo_txt = '
블라인드 처리된 댓글입니다.
';
$is_cmt_shingo = true;
$row['wr_content'] = ''; // 글내용 지움
}
답변 3개
댓글을 작성하려면 로그인이 필요합니다.
댓글도 게시글과 동일하게 wr_id가 고유적으로 부여가 됩니다.
게시글을 신고할때 insert 문이 어떻게 될지는 모르겠지만 굳이 wr_id가 insert가 된다면 wr_parent로 찾을 필요는 없을것 같습니다.
그리고 bo_table 값도 저장 되야 하구요.
view_commnet.skin에서 작업을 해야하는데 거기서 변수는 $view가 아니고 for문 안에 $list이고
view_comment.skin for 문 안에
$sql = "SELECT * FROM {$g5['apms_shingo']} WHERE bo_table = '{$bo_table}' and mb_id='{$member['mb_id']}' and wr_id = '{$list[$i]['wr_id']}'";
$result_id = sql_fetch($sql);
if($is_member) { // 회원일때
if($result_id){ ?> 이렇게 해도 되지 않을까 싶네요.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 4개
어떤 컬럼에
어떤 값을 넣어서, 일반 댓글과 구분하게 하셨나요?
2. 그전에 기존에 있는 apms_shingo 신고 관련 테이블로 가서, 현재 접속되어 있는 $member['mb_id'] // 접속되어 있는 아이디 그리고 차단버튼(신고)를 누른 아이디를 찾아서 mb_id
로 일치하는지 비교를 했습니다.
3. wr_parent 해당 게시판 번호와 $view['wr_id'] // 현재 보고 있는 게시판 번호 가 일치하는지
비교를 했습니다.
둘다 맞을 경우 블라인드 처리로 적용을 했습니다.
apms_shingo (신고테이블) _ 댓글일때
bo_table
wr_id // 댓글 번호
wr_parent // 게시글 번호
mb_id // 아이디
신고테이블 wr_id 와 해당 게시판 테이블 wr_id 가 같을때 블라인드 처리로도
헤보았으나 같은 상황입니다..
==> 회원일 때만 차단한 댓글 안 보이기" 기능이 동작하는 건가요?
댓글-loop( $list) {
if($is_member) { // 회원일때
$sql = "SELECT count(*) cnt FROM {$g5['apms_shingo']} WHERE mb_id='{$member['mb_id']}' and wr_parent = '{$list['wr_id']}'";
$result_id = sql_fetch($sql);
if( $result_id['cnt'] > 0) {
$shingo_txt = '<p><b>블라인드 처리된 댓글입니다.</b></p>';
$is_cmt_shingo = true;
$row['wr_content'] = ''; // 글내용 지움
} else {
//$shingo_txt = '';
$is_cmt_shingo = false;
//$row['wr_content'] = ''; // 글내용 지움
}
} // if( 회원)
댓글 출력...
} //댓글-loop()
이런 식으로 하면 될 듯한데 비효율적입니다.
bbs/view_comment.php에서 처리해야 깔끄합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
댓글에
블라인드 처리된 댓글입니다. 이렇게 표시 됩니다.
d와 e라는 사람을 구분지어야 하는데..모르겟네요 ㅠㅠ