게시판 합치기이후에 카테고리지정해도 게시판에서 카테고리 선택시 아무것도 안나오면 어떻게해야하나요?

게시판 합치기이후에 카테고리지정해도 게시판에서 카테고리 선택시 아무것도 안나오면 어떻게해야하나요?

QA

게시판 합치기이후에 카테고리지정해도 게시판에서 카테고리 선택시 아무것도 안나오면 어떻게해야하나요?

본문

기존 a 게시판 에다가

b게시판을 얹혀서

합쳐서 쓰려고합니다 

그래서

 

wr_id/wr_num/wr_parent가 중복되지않게해서

INSERT IGNORE INTO  a_write_Table SELECT * FROM b_write_table;


했고요

a게시판 내용을 a카테고리 지정했고요

b게시판내용을 b카테고리 지정했고요

 

전체로 보면 다 나와요 

그런데

하지만 게시판에서 

b카테고리 선택하면 아무글도 안나오네요

 

분명 b카테고리 mysql에서는 지정되있는거 확인했는데요 

게시판에 안나오면 어떻게해야할까요?

 

게시판 합치기이후에 카테고리지정했고요

그렇게한후에

 

게시판에서 카테고리 선택시 아무것도 안나오면 어떻게해야하나요? 

전체로 보면 다나와요 

분명 mysql에선 카테고리 이름 맞게 설정했슴에도 

 왜  게시판 카테고리 클릭해도 안나오는거에요?

 

 

 

이 질문에 댓글 쓰기 :

답변 1

이게 좀 문제(?)라 생각하는데 개발자분의 반응은 이게 당연하다고 하셔서 그런가보다 생각했던 내용입니다.

 

 

게시판을 합쳤다면

예를 들어

A 게시판 글 2만개

B 게시판 글 2만개

있다면

B 게시판을 A 게시판으로 이전한거죠?

 

 

원인을 알려드릴께요.

그누보드5는 카테고리를 선택하면 1만개 단위로 보여주게 되어 있습니다.

즉 "검색 = 카테고리 선택" 같은 방식입니다.

즉 B 게시판의 글은 A게시판 2만개 이후에 보여줍니다.

카테고리를 선택하면 처음에 글 1만개중에 해당 카테고리가 있어야 글이 보이고...

글이 없으면 "다음검색"으로 보여줍니다.

그래서 B 게시판의 카테고리를 선택하면 글이 안보입니다.

 

/bbs/list.php 파일 34줄쯤에


// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
if ($sca || $stx) {
    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);
    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
    $row = sql_fetch($sql);
    $min_spt = (int)$row['min_wr_num'];
    if (!$spt) $spt = $min_spt;
    $sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    // 라엘님 제안 코드로 대체 http://sir.co.kr/bbs/board.php?bo_table=g5_bug&wr_id=2922
    $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
    $row = sql_fetch($sql);
    $total_count = $row['cnt'];
    /*
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
    $result = sql_query($sql);
    $total_count = sql_num_rows($result);
    */
} else {
    $sql_search = "";
    $total_count = $board['bo_count_write'];
}

 

 

위 소스를...

 

 



// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
if ($stx) {
    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);
    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
    $row = sql_fetch($sql);
    $min_spt = (int)$row['min_wr_num'];
    if (!$spt) $spt = $min_spt;
    $sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    // 라엘님 제안 코드로 대체 http://sir.co.kr/bbs/board.php?bo_table=g5_bug&wr_id=2922
    $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
    $row = sql_fetch($sql);
    $total_count = $row['cnt'];
    /*
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
    $result = sql_query($sql);
    $total_count = sql_num_rows($result);
    */
} else {
    $sql_search = "";
    $total_count = $board['bo_count_write'];

    if ($sca) {
      $sql_search = "ca_name='{$sca}' ";
      $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
      $row = sql_fetch($sql);
      $total_count = $row['cnt'];
    }
}

 

이런식으로 수정해야 합니다.

 

 

직접 해본건 아니기에 버그가 있을수 있으니 적당히 수정하셔서 사용하세요.

그럼 글 수에 상관없이 카테고리를 누르면 카테고리에 해당되는 글이 나옵니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 1

회원로그인

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