DB 추출 관련 > 그누4 질문답변

그누4 질문답변

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

DB 추출 관련 정보

DB 추출 관련

본문


DB 추출관련 입니다.
이쪽 부분은 잘 몰라서 ㅎㅎ

 $sql="select * from g4_board_file where bo_table='pds_01' or bo_table='util' or bo_table='mapp' or bo_table='patch' order by bf_download desc limit 8";
 $result = sql_query($sql);
 $ranking=0;
 while($bf_rank = mysql_fetch_array($result))
 {
 $sql2="select * from g4_write_$bf_rank[bo_table] where wr_id='$bf_rank[wr_id]'";
 $result2 = sql_query($sql2);

 while($rank=mysql_fetch_array($result2))

위의 소스는 다운로드 횟수 순위를 출력하는데 사용하는 소스의 부분 입니다.
g4_board_file 에서 bf_download 로 가져 오는건 대충 알겠는데

이 소스를 조회수나 1번링크 hit 순으로 바꾸고 싶습니다.
어떻게 해야 하나요? ㅠ_ㅠ

  • 복사

댓글 전체

조회수나 1번링크 hit 순으로 정렬하고

어느 테이블에서 가져오고 싶으신 건지 알면 답변이 빠를것 같습니다.

g4_board_file 테이블인가요?
g4_write_xxxx 테이블인가요?
select * from g4_board_file where bo_table='pds_01' or bo_table='util' or bo_table='mapp' or bo_table='patch' order by bf_download desc limit 8

일단 위의 쿼리로 날리신다는 것은 util 이나 pds_01,mapp,patch 게시판에 있는 파일의 정보를 다운로드 카운트 순으로 가져오는 것입니다.

쓰신글을 보면 그 해당글의 조회수나 1번 파일의 힛순으로 가져오신다고 하셨는데 이것은 정리하자면 파일기준에서 게시글 기준으로 바꾸신다는 내용입니다. (제 해석이 맞는지요?)

일단 하나하나 설명을 드리겠습니다.
1번파일의 링크 순으로 정렬하시고자 한다면 파일테이블의 bf_no=0 인것을 추출해서 그것의 랭크를 주시면 됩니다.

따라서
select * from g4_board_file where (bo_table='pds_01' or bo_table='util' or bo_table='mapp' or bo_table='patch') AND bf_no='0'  order by bf_download desc limit 8

가 됩니다. 이쿼리문은 해당 게시판들에 올라온 게시물 중 1번 링크에 올려진 파일들을 가져와 다운로드 순으로 정렬하게 됩니다.


두번째의 경우는 조회수를 접목하는 것인데 이것은 해당 게시판을 모두 union all 하여 보여주어야 합니다.
또한 서브쿼리가 적용되지 않는 mysql 4.0 대 버전일 경우 더 많은 비용을 필요로 합니다. 특히 해당 게시판이 4개나 되기 때문에 너무 많은 비용을 소모할 것 같습니다. 꼭 적용하시고자 한다면 개인적으로 쪽지 주시면 답변드리도록하겠습니다.
© SIRSOFT
현재 페이지 제일 처음으로