게시판 조회수 DB 다루기 질문드려요

게시판 조회수 DB 다루기 질문드려요

QA

게시판 조회수 DB 다루기 질문드려요

답변 4

본문

안녕하세요. 여러분들 도움으로 하루하루 실력 쌓아가고 있는 초보 개발자입니다.

항상 도와주셔서 감사합니다.

 

조회수 올라가는 카운트를 다뤄보고 싶어서 질문 드려요

 

작성자가 올린 게시글에 찍히는 조회수 만큼 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

$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

답변 감사합니다. 하루 종일 달라 붙어서 이렇게도 해보고 저렇게도 해보고 했으나 벌써 저녁이네요 ㅜㅜ

root/bbs/board.php에 해당 구문을 넣어야 하는게 맞는건지.. mb_3 영역에 숫자가 없어서 그런건지... 별에 별 경우의 수를 다 두고 이것 저것 조금씩 바꿔가면서 찾아보고 있지만 쉽지 않네요..

밑의 코드는 말씀해주신대로 board.php에 넣어본 코드입니다. DB에서 확인해보니 동작을 안하는 것 같네요;; 흐음

  $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);
    }
 

답변 감사합니다... 데이터 다루는 방법을 조금 바꿔보기로 했습니다. sql_query로 만들고 싶은 기능 하나하나 빌드 해보려고 했지만... 포인트 DB를 끌어와서 활용해보기로 했습니다. 결과는 제가 생각하는 것보다 훨씬 다루기 쉬운 방향으로 작동해서 이 방향으로 굳히려구요. 포인트 관련 함수들 활용하니 코딩 작업도 훨씬 간결해지고 좋아지네요. 다들 도움 주셔서 감사합니다. 덕분에 또 하나 배워갑니다 ^^

게시물 작성자 mb_3 에 조회수를 찍는다는거죠?

update g5_member set mb_3 = '{$write['wr_hit']}' where mb_id ='{$write['mb_id']}'

여기서 wr_hit 이랑 mb_id 는 해당 게시글껄 가져와서 넣어주면 될거같네요

어제 새벽 1시까지 붙들고 씨름하다 결국 못했습니다 ㅜㅜ 빌드랑 테마 때문에 그런 것 같아 bbs 관련 내용 새로이 찾아 보고 있습니다. 사용 빌드는 나리야이구요.... 아마 이 것 때문에 답변 주신 내용들이 적용 안되는 것 같다는 생각이네요.

나리야 빌더는 /bbs/board.php 가 적용되지 않습니다. (파일의 모든 내용을 삭제해보고 확인해 보면 됩니다.)
/nariya/bbs/board.php 파일이 적용됩니다. /nariya/bbs/board.php 파일을 수정해야 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로