안녕하세요. 여러분들 도움으로 하루하루 실력 쌓아가고 있는 초보 개발자입니다.
항상 도와주셔서 감사합니다.
조회수 올라가는 카운트를 다뤄보고 싶어서 질문 드려요
작성자가 올린 게시글에 찍히는 조회수 만큼 member -> mb_3에 숫자를 찍고 싶어요.
bbs/board.php에 코드 확인해 보니
sql_query(" update {$write_table} set wr_hit = wr_hit + 1 where wr_id = '{$wr_id}' ");
이렇게 작성되어 있는 것까지는 확인 했는데...
sql_query(" update {$member} set mb_3 = mb_3 + 1 where mb_id = '{$member['mb_id']}' ");
당연히 이렇게 적으면 안될 것 같았지만 해보고... 이렇게 저렇게 뒤져보고 찾아보다 다른 효율적인 코드가 있을 것 같아서 글올려봅니다.
모쪼록 도움 부탁드립니다.
답변 4개 / 댓글 4개
$member['mb_id'] 는 현재 로그인한 회원의 ID 입니다.
해당글 작성자의 회원 ID 는 글정보에서 추출해야 됩니다.
(글작성자가 'a' 이고 'b' 유저가 글보기를 하고 있을때.. 'a' 유저의 mb_3 를 업데이트 한다면..)
$wr = get_write($bo_table, $wr_id);
$sql = " update {$g5['member_table']} set mb_3 = {$wr['wr_hit']} where mb_id = '{$wr['mb_id']}' ";
sql_query($sql);
※ http://blog.gnuwiz.com/bbs/board.php?bo_table=gnu_study&wr_id=2
답변에 대한 댓글 3개
어제 새벽 1시까지 붙들고 씨름하다 결국 못했습니다 ㅜㅜ 빌드랑 테마 때문에 그런 것 같아 bbs 관련 내용 새로이 찾아 보고 있습니다. 사용 빌드는 나리야이구요.... 아마 이 것 때문에 답변 주신 내용들이 적용 안되는 것 같다는 생각이네요.
답변에 대한 댓글 1개
/nariya/bbs/board.php 파일이 적용됩니다. /nariya/bbs/board.php 파일을 수정해야 됩니다.
게시물 작성자 mb_3 에 조회수를 찍는다는거죠?
update g5_member set mb_3 = '{$write['wr_hit']}' where mb_id ='{$write['mb_id']}'
여기서 wr_hit 이랑 mb_id 는 해당 게시글껄 가져와서 넣어주면 될거같네요
sql_query(" update {$g5['member_table']} set mb_3 = mb_3 + 1 where mb_id = '{$member['mb_id']}' ");
답변을 작성하려면 로그인이 필요합니다.
root/bbs/board.php에 해당 구문을 넣어야 하는게 맞는건지.. mb_3 영역에 숫자가 없어서 그런건지... 별에 별 경우의 수를 다 두고 이것 저것 조금씩 바꿔가면서 찾아보고 있지만 쉽지 않네요..
밑의 코드는 말씀해주신대로 board.php에 넣어본 코드입니다. DB에서 확인해보니 동작을 안하는 것 같네요;; 흐음
[code] $ss_name = 'ss_view_'.$bo_table.'_'.$wr_id;
if (!get_session($ss_name))
{
sql_query(" update {$write_table} set wr_hit = wr_hit + 1 where wr_id = '{$wr_id}' ");
$wr = get_write($bo_table, $wr_id);
$sql = " update {$g5['member_table']} set mb_3 = {$wr['wr_hit']} where mb_id = '{$wr['mb_id']}' ";
sql_query($sql);
// 자신의 글이면 통과
if ($write['mb_id'] && $write['mb_id'] === $member['mb_id']) {
;
} else if ($is_guest && $board['bo_read_level'] == 1 && $write['wr_ip'] == $_SERVER['REMOTE_ADDR']) {
// 비회원이면서 읽기레벨이 1이고 등록된 아이피가 같다면 자신의 글이므로 통과
;
} else {
// 글읽기 포인트가 설정되어 있다면
if ($config['cf_use_point'] && $board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
}
set_session($ss_name, TRUE);
}
[/code]