답글은 건너뛰고 이전페이지 다음페이지로 넘어가려고 하는데
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개 / 댓글 8개
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_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 안 붙고 댓글도 아닌 무조건 부모글끼리만 검색해서 위로 아래로 갖고 오는...
답변에 대한 댓글 6개
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 ";
이렇게 입력되어 있습니다!
답변을 작성하려면 로그인이 필요합니다.
아랫글로 이동하는 것은 답글이 그대로 노출되나 윗글로 이동하는건 아주 잘 됩니다!
그래서 아랫글로 가는건 원래 되던대로 놔두고 윗글만 적용하니 잘 되는 것 같습니다!
여러 조건에서 테스트 후 문제 있으면 댓글로 남기겠습니다 ^^
현재 이전, 다음글 이동시 답글은 건너뛰는 쿼리
// 윗글을 얻음
$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);