new.php 베스트 게시판 관련 다시한번 질문 드립니다ㅠ

new.php 베스트 게시판 관련 다시한번 질문 드립니다ㅠ

QA

new.php 베스트 게시판 관련 다시한번 질문 드립니다ㅠ

본문



$sql = " select a.*, b.bo_subject, b.bo_mobile_subject, c.gr_subject, c.gr_id {$sql_common} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    $tmp_write_table = $g5['write_prefix'].$row['bo_table'];
 
    if ($row['wr_id'] == $row['wr_parent']) {
 
        // 원글
        $comment = "";
        $comment_link = "";
        $row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}'and wr_good-wr_nogood>=1 ");
       
        $list[$i] = $row2;
 
        $name = get_sideview($row2['mb_id'], get_text(cut_str($row2['wr_name'], $config['cf_cut_name'])), $row2['wr_email'], $row2['wr_homepage']);
        // 당일인 경우 시간으로 표시함
        $datetime = substr($row2['wr_datetime'],0,10);
        $datetime2 = $row2['wr_datetime'];
        if ($datetime == G5_TIME_YMD) {
            $datetime2 = substr($datetime2,11,5);
        } else {
            $datetime2 = substr($datetime2,5,5);
        }
 
    } else {
 
        // 코멘트
        $comment = '[코] ';
        $comment_link = '#c_'.$row['wr_id'];
        $row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' ");
        $row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
        $list[$i] = $row2;
        $list[$i]['wr_id'] = $row['wr_id'];
        $list[$i]['mb_id'] = $row3['mb_id'];
        $list[$i]['wr_name'] = $row3['wr_name'];
        $list[$i]['wr_email'] = $row3['wr_email'];
        $list[$i]['wr_homepage'] = $row3['wr_homepage'];
 
        $name = get_sideview($row3['mb_id'], get_text(cut_str($row3['wr_name'], $config['cf_cut_name'])), $row3['wr_email'], $row3['wr_homepage']);
        // 당일인 경우 시간으로 표시함
        $datetime = substr($row3['wr_datetime'],0,10);
        $datetime2 = $row3['wr_datetime'];
        if ($datetime == G5_TIME_YMD) {
            $datetime2 = substr($datetime2,11,5);
        } else {
            $datetime2 = substr($datetime2,5,5);
        }
 
    }



 

현재 위와 같은 방식으로 new.php에서 추천수(wr_good)-비추천수(wr_nogood)를 뺀 값이 1 이상인 글들만 추출하도록 하였습니다.

 

그런데 추출을 하니 아래 사진과 같이 1이상인 글들만 출력이 되긴하는데 1이상이 아닌 나머지 글들이 아래처럼 텅 빈 상태로 표시됩니다. (아래 사진의 게시글 1,2,3,4,7,8,9,10번 처럼)

 

추천-비추천이 1이상이 아닌 글들은 아예 흔적도 안보이게 하고 싶은데..

 

아래 텅빈것처럼 보이는 글들을 어떻게하면 안보이게 할 수 있을까요??

 

어제 새벽에 답변 달아주신 분이 계시긴 했는데 조언 들은대로 적용해봐도 바뀌질 않아서 재차 질문드립니다 ㅜㅜ

 

3536709217_1697100209.5682.png

이 질문에 댓글 쓰기 :

답변 7

현재 위와 같은 방식으로 new.php에서 추천수(wr_good)-비추천수(wr_nogood)를 뺀 값이 1 이상인 글들만 추출하도록 하였습니다...

==

실제 code는

추출? 한 다음 추천수 조건 검사를 하도록 되어 있네요.

어찌 되었건 이 방식은 한계가 있고

제대로 하려면

bbs/new.php에서 query 문을 변경해야합니다.그리고

g5_boatd_new에 컬럼을 추가해서

해당 게시물의  추천수 변화가 있을 때마다

추가한 컬럼값을 변경하고

이 컬럼을 조건으로 query 문을 변경해 주면 될 듯합니다.

 

//원글 부분 $list[$i] = $row2; 바로 위에 넣으세요

if(!$row2['wr_id']) continue;

 

그리고 스킨에서  

for ($i=0; $i<count($list); $i++){

 if( !isset($list[$i]['wr_id'])) continue; //<---------추가

 

그런데 댓글도 원글과 동일한 조건의 게시물에 대한 댓글만 출력해야 하는 것아닌가요?

 

위와 같이 하면 원하는 출력은 되지만 문제는 하단 페이징이 리스트수와 맞지않게 됩니다

모든 것을 제대로 하려면 전체 게시물수, 페이징 등 모두 수정해야 합니다

 

 

$sql 뽑아오실때 일단 전체로 뽑아오는 쿼리로 사용되고 있을거로 보입니다.

제생각에는 리스트를 뽑아오실때 선 조건을 걸으셔야 될거 같네요

new.php 순종 소스를 보니까 

$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 ";

이 조건이 걸려있는데

 

이것을 수정해야될것으로 보입니다.

wr_good 이 데이터가 있어야 하고 추천 - 비추천이 1이상이라고 생각하시고 계시니까

where 에 ' wr_good 데이터가 있어야 하고, wr_good 이 wr_nogood 보다 크면 ' 이라는 조건을 추가해주면 원하시는 조건이 될거 같아 보입니다.

 

예를 들자면

$sql_common 정의 된 곳 아래줄에 

$sql_common .= " and b.wr_good > 0 and b.wr_good > b.wr_nogood "; 

전 이거를 추가해 볼듯 합니다.

 

 

리스트 페이지 보면 반복문 처리하는부분이 있을것에요 . 그부분에서 추가 작업이 해줘야 할듯 합니다. 하여 그부분을 한번 보여 주세요. 올린 소스를 보면 정상적으로 모두 보여 주는게 맞는것 같습니다.

$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}'and wr_good-wr_nogood>=1 ");

$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}'and wr_good-wr_nogood>=1 ");

if (!$row2['wr_id'])

  continue;

전체 글을 카운트 하는곳에서도 적용하셔야 합니다.

본문 글에서는 걸러냈지만 전체글 카운트 하는곳에서는 안하셔서 그렇습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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