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

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

QA

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

본문

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

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

 

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

 

작성자가 올린 게시글에 찍히는 조회수 만큼 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 관련 내용 새로이 찾아 보고 있습니다. 사용 빌드는 나리야이구요.... 아마 이 것 때문에 답변 주신 내용들이 적용 안되는 것 같다는 생각이네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 728
QA 내용 검색
filter #sql ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT