게시판 분류선택시 목록이 다 안나옵니다

게시판 분류선택시 목록이 다 안나옵니다

QA

게시판 분류선택시 목록이 다 안나옵니다

본문

1851630312_1665114611.5902.jpg

전체에서는 환경설정에서 입력한 목록의 숫자에 맞게 전체목록에 하단에 게시판의 숫자표시가 뜨는데,

위 사진처럼 분류를 선택하면 목록에 있는 글 전체가 아닌 몇개만 나오고 있습니다.

 

어떤 부분을 수정하면 목록에 있는 게시글 전체가 다 나올 수 있을까요?

 

고수님들의 가르침 부탁드립니다

 

p.s :

1. 테마스킨문제라는 의견이 있어 베이직으로 돌려봤는데도 증상은 동일합니다 ㅠㅠ

2. 목록 옆 숫자쪽을 보라고 하신 의견이 있었는데 해당 소스를 넣기 이전부터 그랬습니다

 

list.php 파일에 있는 내용이 왠지 이것과 관련있는 소스인것 같은데 봐주실 수 있을까요?


// 분류 사용 여부
$is_category = false;
$category_option = '';
if ($board['bo_use_category']) {
    $is_category = true;
    $category_href = get_pretty_url($bo_table);
    $sqlCnum = " select count(*) as Cnum from $write_table where wr_is_comment = 0"; 
    $rowCnum = sql_fetch($sqlCnum);
    $CnumText = " <span style='font-size:11px;color:#666666; padding-left:3px;"; 
    if ($sca=='') {
        $CnumText = $CnumText." color:#ffffff;"; 
    }
    $CnumText = $CnumText." '>{$rowCnum['Cnum']}</span>"; 
    $category_option .= '<li><a href="'.$category_href.'"';
    if ($sca=='')
        $category_option .= ' id="bo_cate_on"';
    $category_option .= '>전체'.$CnumText.'</a></li>';
    $tmp_write_table = $g5['write_prefix'] . $bo_table;
    $categories = explode('|', $board['bo_category_list']); // 구분자가 , 로 되어 있음
    for ($i=0; $i<count($categories); $i++) {
        $category = trim($categories[$i]);
        $tmp_row = sql_fetch(" select count(*) as cnt from {$tmp_write_table} where ca_name = '".$category."' ");
        if ($category=='' || $tmp_row['cnt'] < 1) continue;
        if ($category=='') continue;
        $category_option .= '<li><a href="'.(get_pretty_url($bo_table,'','sca='.urlencode($category))).'"';
        $category_msg = '';
        if ($category==$sca) { // 현재 선택된 카테고리라면
            $category_option .= ' id="bo_cate_on"';
            $category_msg = '<span class="sound_only">열린 분류 </span>';
        }
        $sqlCnum = " select count(*) as Cnum from $write_table where wr_is_comment = 0 and ca_name = '{$category}'"; 
        $rowCnum = sql_fetch($sqlCnum);
        $CnumText = " <span style='font-size:11px;color:#666666; padding-left:3px;"; 
        if ($category==$sca) { // 현재 선택된 카테고리라면
            $CnumText = $CnumText." color:#ffffff;"; 
        }
        $CnumText = $CnumText." '>{$rowCnum['Cnum']}</span>"; 
        $category_option .= '>'.$category_msg.$category.$CnumText.'</a></li>';
    }
}
$sop = strtolower($sop);
if ($sop != 'and' && $sop != 'or')
    $sop = 'and';
// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
//검색인지 아닌지 구분하는 변수 초기화
$is_search_bbs = false;
if ($sca || $stx || $stx === '0') {     //검색이면
    $is_search_bbs = true;      //검색구분변수 true 지정
    $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.kr/g5_bug/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(G5_IS_MOBILE) {
    $page_rows = $board['bo_mobile_page_rows'];
    $list_page_rows = $board['bo_mobile_page_rows'];
} else {
    $page_rows = $board['bo_page_rows'];
    $list_page_rows = $board['bo_page_rows'];
}
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
// 년도 2자리
$today2 = G5_TIME_YMD;
$list = array();
$i = 0;
$notice_count = 0;
$notice_array = array();

이 질문에 댓글 쓰기 :

답변 3

해당 파일도 백업 후 순정으로 돌려보세요.

그리고 board.php 이 파일도요

해당 게시판 ca_name이 비슷하지만 달라서 그런 게 아닐까요?

phpmyadmin 등에서

select ca_name, count(*) from g5_write_게시판 group by ca_name

해서 갯수를 확인해 보세요.

소스코드 중에 다음부분


$sqlCnum = " select count(*) as Cnum from $write_table where wr_is_comment = 0 and ca_name = '{$category}'";
echo $sqlCnum;

처럼 해보시고 실제 쿼리 날려보세요.

그다음에 "count(*) as Cnum" 를 "*" 로 변경 후 상세목록 확인도 해보세요

시간내서 코드 작성해주신 부분 감사합니다
그런데 아쉽지만 말씀하신대로 수정해봐도 증상이 동일하네요
정말 답답한건 오리지널 파일을 넣었는데도 증상이 동일하니 어떻게 해야할지 모르겠네요 ㅎㅎ
초보다 보니 저런부분이 수정되어서 원하는대로 나오면 짜릿함이 꼭 낚시나 골프하는 것 같아서 그 재미에 하는건데 기운이 다 빠져버렸어요 ㅠㅠ

올려드린 코드는
문제해결을 위한 코드가 아니라
디버깅을 위한 코드 입니다.

출력되는 쿼리를 복사해 실제 쿼리를 날려보고 어떤 항목들이 조회되어 개수에 차이가 나는지
디버깅 해보시라는 뜻입니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,534 | RSS
QA 내용 검색

회원로그인

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