G

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

· 2013-12-10 (화) 11:38:59 · 3032 · 12
특정게시판에 작성한 코멘트숫자로 or 획득한 포인트로 순위를 뽑을수있을까요?

쿼리는 너무 어렵네요 ㅜㅜ
|

댓글 12개

2013-12-10 (화) 13:38:00
테이블을 하나 만들지 않고 그 게시판테이블 자체로 순위를 매긴다면 무리가 있지 않나 싶습니다.
예를들어 한명이 순위를 확인하기 위해 쿼리가 돌아가면
모든 게시판의 댓글인 글 갯수를 로드하고 그것도 개인별로 임시로 뽑아 그걸 랭킹으로 뽑기 때문입니다.
임의의 테이블 하나를 생성하셔서 해당 게시판의 댓글수를 아이디별로 미리 저장을 해놓고 그 테이블에서 순위를 가져오는게 좋을것 같습니다.
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
자세한 쿼리나 소스도움을 받을수없을까요?ㅠㅜ
2013-12-11 (수) 01:00:04
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 = 문을 하나 더 돌립니다.
2013-12-11 (수) 01:02:15
$sql2 는 table_rank 의 comment에서 mb_id 체크하고 같은곳에 +1씩 해주면 됩니다.
2013-12-11 (수) 01:03:04
그런식으로 계산 한뒤에 마지막으로
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씩 해주면 됩니다."

이게 무슨말씀이신지 모르겠습니다 ㅜㅜ
2013-12-11 (수) 09:20:54
$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 을 해준 값을 넣어주면 됩니다. "라고하셨는데
어떻게 하는지를 모르겠습니다 ㅜㅜ 이런 친절한 답변을 받고도 못하구있네요 ㅜㅜ
2013-12-12 (목) 09:33:19
넵 $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번이 무슨말인지모르겠습니다..선언하는법도 몰르구요 ㅜㅜ
2013-12-13 (금) 09:25:22
$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 를 실행하시면 됩니다.
새싹님 답변 감사드립니다 잘됩니다 ^^
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

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

+
제목 글쓴이 날짜 조회
13-12-10 조회 2,976
13-12-10 조회 4,907
13-12-10 조회 2,447
13-12-10 조회 3,070
13-12-10 조회 2,475
13-12-10 조회 5,171
13-12-10 조회 2,566
13-12-10 조회 2,844
13-12-10 조회 3,375
13-12-10 조회 2,919
13-12-10 조회 2,469
13-12-10 조회 3,033
13-12-10 조회 2,632
13-12-10 조회 3,438
13-12-10 조회 3,743
13-12-10 조회 3,601
13-12-10 조회 2,984
13-12-10 조회 3,359
13-12-10 조회 2,826
13-12-10 조회 3,220