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

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

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 ";


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

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

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

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

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

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 14,899
QA 내용 검색
filter #php ×

회원로그인

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