특정 게시판의 코멘트수나 획득한포인트로 순위를 뽑을수있을까요? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

특정 게시판의 코멘트수나 획득한포인트로 순위를 뽑을수있을까요? 정보

특정 게시판의 코멘트수나 획득한포인트로 순위를 뽑을수있을까요?

본문

특정게시판에 작성한 코멘트숫자로 or 획득한 포인트로 순위를 뽑을수있을까요?

쿼리는 너무 어렵네요 ㅜㅜ

댓글 전체

테이블을 하나 만들지 않고 그 게시판테이블 자체로 순위를 매긴다면 무리가 있지 않나 싶습니다.
예를들어 한명이 순위를 확인하기 위해 쿼리가 돌아가면
모든 게시판의 댓글인 글 갯수를 로드하고 그것도 개인별로 임시로 뽑아 그걸 랭킹으로 뽑기 때문입니다.
임의의 테이블 하나를 생성하셔서 해당 게시판의 댓글수를 아이디별로 미리 저장을 해놓고 그 테이블에서 순위를 가져오는게 좋을것 같습니다.
table_rank
comment    mb_id
100            abc
5              def

이런식으로 댓글을 하나 쓸때마다 해당 아이디에 1씩 더해주고 순위는 저 테이블에서 가져오는게 맞는것 같습니다.
bbs폴더에 댓글달때 파일을 찾아서 댓글이 달릴때 쿼리문으로 table_rand 에서 자신의 아이디에 comment 1씩 더해주면 됩니다.
특정 게시판에서 하시려면 if문을 이용하셔서 게시판 번호를 체크하시고 넣어주시면됩니다
랭킹계산하는 쿼리문 - http://blog.naver.com/PostView.nhn?blogId=prosports0&logNo=80143909734
table_rank 라는 테이블에 comment ,mb_id 로 만드시고
그누보드 root - bbs - write_comment_update.php 파일에
    $sql = " insert into $write_table
                set ca_name = '{$wr['ca_name']}',
                    wr_option = '$wr_secret',
                    wr_num = '{$wr['wr_num']}',
                    wr_reply = '',
                    wr_parent = '$wr_id',
                    wr_is_comment = 1,
                    wr_comment = '$tmp_comment',
                    wr_comment_reply = '$tmp_comment_reply',
                    wr_subject = '',
                    wr_content = '$wr_content',
                    mb_id = '$mb_id',
                    wr_password = '$wr_password',
                    wr_name = '$wr_name',
                    wr_email = '$wr_email',
                    wr_homepage = '$wr_homepage',
                    wr_datetime = '".G5_TIME_YMDHIS."',
                    wr_last = '',
                    wr_ip = '{$_SERVER['REMOTE_ADDR']}',
                    wr_facebook_user = '$wr_facebook_user',
                    wr_twitter_user  = '$wr_twitter_user',
                    wr_1 = '$wr_1',
                    wr_2 = '$wr_2',
                    wr_3 = '$wr_3',
                    wr_4 = '$wr_4',
                    wr_5 = '$wr_5',
                    wr_6 = '$wr_6',
                    wr_7 = '$wr_7',
                    wr_8 = '$wr_8',
                    wr_9 = '$wr_9',
                    wr_10 = '$wr_10' ";
    sql_query($sql);
부분 아래쪽에 $sql2 = 문을 하나 더 돌립니다.
그런식으로 계산 한뒤에 마지막으로
table_rank 에서 http://blog.naver.com/PostView.nhn?blogId=prosports0&logNo=80143909734 이 링크에 있는 쿼리문으로 랭킹을 뽑아오시면 됩니다.
table_rank 테이블을 만들었고 comment 와 mb_id 필드를 int(255) 값으로 생성했습니다.
write_comment_update.php 말씀하신곳 바로밑에다가

    $sql2 = " insert into $write_table
                set ca_name = '$wr[ca_name]',
                    wr_option = '$wr_secret',
                    wr_num = '$wr[wr_num]',
                    wr_reply = '',
                    wr_parent = '$wr_id',
                    wr_is_comment = '1',
                    wr_comment = '$tmp_comment',
                    wr_comment_reply = '$tmp_comment_reply',
                    wr_subject = '$wr_subject',
                    wr_content = '$wr_content',
                    mb_id = '$mb_id',
                    wr_password = '$wr_password',
                    wr_name = '$wr_name',
                    wr_email = '$wr_email',
                    wr_homepage = '$wr_homepage',
                    wr_datetime = '$g4[time_ymdhis]',
                    wr_last = '',
                    wr_ip = '$_SERVER[REMOTE_ADDR]',
                    wr_1 = '$wr_1',
                    wr_2 = '$wr_2',
                    wr_3 = '$wr_3',
                    wr_4 = '$wr_4',
                    wr_5 = '$wr_5',
                    wr_6 = '$wr_6',
                    wr_7 = '$wr_7',
                    wr_8 = '$wr_8',
                    wr_9 = '$wr_9',
                    wr_10 = '$wr_10' ";
    sql_query($sql);

이것을 똑같이 하나더넣고 위처럼 sql2로만 바꾸라는 말씀이시지요?

"$sql2 는 table_rank 의 comment에서 mb_id 체크하고 같은곳에 +1씩 해주면 됩니다."

이게 무슨말씀이신지 모르겠습니다 ㅜㅜ
$sql2 는 $sql 복사 붙여넣기가 아니라 update table_rank set comment = $point where mb_id = $mb_id 로 하시고
여기서 $point 는 select 문을 이용해서 table_rank 의 포인트를 가져와서 +1 을 해준 값을 넣어주면 됩니다.
mb_id 는 int 가 아니라 varchar(50) 으로 (mssql을 요새 하다보니 자료형을 잘 모르겠네요. member 테이블에 있는 mb_id랑 같게 해주시면 됩니다) 바꿔주셔야 됩니다.
$sql2 = " update table_rank set comment = $point where mb_id = $mb_id "; 이렇게 밑에다가 넣으라고 하시는게 맞나요 새싹님?
쿼리지식이 하나도 없어서 수십번해보고있는데 잘안되네요.

$point 는 select 문을 이용해서 table_rank 의 포인트를 가져와서 +1 을 해준 값을 넣어주면 됩니다. "라고하셨는데
어떻게 하는지를 모르겠습니다 ㅜㅜ 이런 친절한 답변을 받고도 못하구있네요 ㅜㅜ
넵 $sql2 를 저렇게 넣으시면 $point 가 없어서 에러가 뜨는데요.
$point 는 select 문을 이용해 작성자의 아이디 ($mb_id) 를 이용해서 table_rank 의 point 값을 얻어와서 거기서 +1을 해줍니다.

1. 작성자 아이디의 포인트를 가져와 1을 더한다. ($point를 선언하여 select 문으로 table_rank의 point 값을 가져와 +1)
2. 그 더한 값을 다시 table_rank 에 없데이트 한다. ($sql2 문을 이용)
이렇게 돌아간다고 생각하시면 됩니다~
수십번해봐도 안되네요 일단 table_rank테이블 mb_id,comment 필드를 만들어놓았고

write_comment_update.php 밑에다가

$sql2 = " update table_rank set comment = $point where mb_id = $mb_id ";

sql_query($sql);

이렇게 붙여넣었습니다.

여기까지했는데 1.2번이 무슨말인지모르겠습니다..선언하는법도 몰르구요 ㅜㅜ
$point_que = "SELECT point FROM table_rank where mb_id = $mb_id";
$data = mysql_query( $point_que, $connect );
로 하면 data 에 해당 아이디의 point 가 들어갑니다.
$point = $data+1;
을 해서 point 에 해당 아이디의 point 에 1을 더한 후
sql2 를 실행하시면 됩니다.
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

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