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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
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