뷰페이지 이전 다음 다시 질문드려요ㅠㅠ

뷰페이지 이전 다음 다시 질문드려요ㅠㅠ

QA

뷰페이지 이전 다음 다시 질문드려요ㅠㅠ

본문

답글은 건너뛰고 이전페이지 다음페이지로 넘어가려고 하는데

 

bbs/view.php에 블랙캣님 안내로 wr_id = wr_parent 구문을 추가해서

 

다음페이지로 넘어가는부분은 정상적으로 답글 건너뛰고 넘어가집니다

 

근데 이전페이지로 넘어가는건 아무리 해도 답글이 그대로 나오네요 ㅠㅠ

 

소스 적용한 부분 한번 봐 주시면 감사하겠습니다!

 

 


// 윗글을 얻음
$sql = " select wr_id, wr_subject, wr_comment, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply < '{$write['wr_reply']}' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";
$prev = sql_fetch($sql);
// 위의 쿼리문으로 값을 얻지 못했다면
if (!$prev['wr_id']) {
$sql = " select wr_id, wr_subject, wr_comment, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num < '{$write['wr_num']}' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";
$prev = sql_fetch($sql);
    }
 
// 아래글을 얻음
$sql = " select wr_id, wr_subject, wr_comment, wr_datetime from wr_id = wr_parent {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply > '{$write['wr_reply']}' {$sql_search} order by wr_num, wr_reply limit 1 "; // 이곳 from절 뒤에 wr_id = wr_parent 추가한 후 다음페이지 넘어가는건 정상작동함
$next = sql_fetch($sql);
// 위의 쿼리문으로 값을 얻지 못했다면
if (!$next['wr_id']) {
$sql = " select wr_id, wr_subject, wr_comment, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num > '{$write['wr_num']}' {$sql_search} order by wr_num, wr_reply limit 1 ";
$next = sql_fetch($sql);
    }

 

윗글을 얻음에는 어떻게 해야 잘 건너뛰어질까요?;;

이 질문에 댓글 쓰기 :

답변 3

if($bo_table!='test'){
    // 윗글을 얻음
    $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply < '{$write['wr_reply']}' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";
    $prev = sql_fetch($sql);
}
    // 위의 쿼리문으로 값을 얻지 못했다면
    if (!$prev['wr_id'])     {
        $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num < '{$write['wr_num']}' and wr_reply='' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";
        $prev = sql_fetch($sql);
    }
if($bo_table!='test'){
    // 아래글을 얻음
    $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply > '{$write['wr_reply']}' {$sql_search} order by wr_num, wr_reply limit 1 ";
    $next = sql_fetch($sql);
}
    // 위의 쿼리문으로 값을 얻지 못했다면
    if (!$next['wr_id']) {
        $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num > '{$write['wr_num']}' and wr_reply='' {$sql_search} order by wr_num, wr_reply limit 1 ";
        $next = sql_fetch($sql);
    }
}

 

모든 게시판에 적용하려면 if($bo_table!='test'){ <---if문 제거

윽 잘되는 줄 알았는데 착각했습니다,
아랫글로 이동하는 것은 답글이 그대로 노출되나 윗글로 이동하는건 아주 잘 됩니다!

그래서 아랫글로 가는건 원래 되던대로 놔두고 윗글만 적용하니 잘 되는 것 같습니다!

여러 조건에서 테스트 후 문제 있으면 댓글로 남기겠습니다 ^^


현재 이전, 다음글 이동시 답글은 건너뛰는 쿼리


    // 윗글을 얻음
    $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply < '{$write['wr_reply']}' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";
    $prev = sql_fetch($sql);
    // 위의 쿼리문으로 값을 얻지 못했다면
    if (!$prev['wr_id'])    {
        $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num < '{$write['wr_num']}' and wr_reply='' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";
        $prev = sql_fetch($sql);
}

    // 아래글을 얻음
$sql = " select wr_id, wr_subject, wr_comment, wr_datetime from wr_id = wr_parent {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply > '{$write['wr_reply']}' {$sql_search} order by wr_num, wr_reply limit 1 ";
$next = sql_fetch($sql);
    // 위의 쿼리문으로 값을 얻지 못했다면
    if (!$next['wr_id']) {
        $sql = " select wr_id, wr_subject, wr_datetime from {$write_table} where wr_is_comment = 0 and wr_num > '{$write['wr_num']}' and wr_reply='' {$sql_search} order by wr_num, wr_reply limit 1 ";
        $next = sql_fetch($sql);

// 윗글

$sql = "SELECT wr_id, wr_subject, wr_datetime FROM ".$write_table." WHERE wr_is_comment = 0 AND wr_id = wr_parent AND wr_reply = '' AND wr_id > ".$wr_id." ".$sql_search." LIMIT 1";

 

//아랫글

$sql = "SELECT wr_id, wr_subject, wr_datetime FROM ".$write_table." WHERE wr_is_comment = 0 AND wr_id = wr_parent AND wr_reply = '' AND wr_id < ".$wr_id." ".$sql_search." LIMIT 1";

 

이렇게 하면 되지 않을까 싶네요.

re 안 붙고 댓글도 아닌 무조건 부모글끼리만 검색해서 위로 아래로 갖고 오는...

// 윗글
SELECT wr_id, wr_subject, wr_datetime FROM ".$write_table." WHERE wr_is_comment = 0 AND wr_id = wr_parent AND wr_reply = '' AND wr_id > ".$wr_id." ".$sql_search." ORDER BY wr_id ASC LIMIT 1

// 아랫글
SELECT wr_id, wr_subject, wr_datetime FROM ".$write_table." WHERE wr_is_comment = 0 AND wr_id = wr_parent AND wr_reply = '' AND wr_id < ".$wr_id." ".$sql_search." ORDER BY wr_id DESC LIMIT 1

제가 ORDER BY를 테스트하면서 안 넣었네요.

아.. 제가 쿼리 해석을 조금만 할줄 알았어도 ㅠㅠ
혹시 두번째 테스트하셨던 것은 잘 이동되었나요? 저는 아까 앞뒤로 날아가던것의 반 정도로 날아가는 거리만 줄은 듯한 느낌이..;;

    // 윗글을 얻음
    $sql = " SELECT wr_id, wr_subject, wr_datetime FROM ".$write_table." WHERE wr_is_comment = 0 AND wr_id = wr_parent AND wr_reply = '' AND wr_id > ".$wr_id." ".$sql_search." ORDER BY wr_id ASC LIMIT 1 ";


    // 아래글을 얻음
    $sql = " SELECT wr_id, wr_subject, wr_datetime FROM ".$write_table." WHERE wr_is_comment = 0 AND wr_id = wr_parent AND wr_reply = '' AND wr_id < ".$wr_id." ".$sql_search." ORDER BY wr_id DESC LIMIT 1 ";


이렇게 입력되어 있습니다!

테스트해봤는데 보니까 분류 보기 상태에서는 잘 되는 것 같은데

전체게시글 상태에서 앞뒤로 움직이니 게시글을 마구 건너뛰는 것 같습니다,

균이님 소스로 해결이 되었습니다,

계란님이 몇번이나 도움주신것도 정말로 감사드려요!!

위에 전체 소스 올려놓았는데 혹시 소스에 문제가 있다면 그때도 간단한 조언 부탁드릴게요!!

윗글을 얻음에도 넣어주세요.

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

회원로그인

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