게시판 리스트 정렬문제 하나 여쭤보아요~ 정보
게시판 리스트 정렬문제 하나 여쭤보아요~
본문
리스트 정렬시 답변(댓글아님) 달린 글만 리스트로 출력을 해주려고합니다.
글 작성을 해도 답글이 달리지 않은글은 출력안하려고 합니다.
답글은 wr_reply필드에 값 A 와 같은 형식으로 들어가는데
$list=mysql_query(select * from board where wr_reply!='');
이런식으로 wr_reply를 포함한 리스트를 먼저 뽑은후에
select * from board where wr_num='$list[wr_reply]'; 요런식으로 하려고 했었는데
그러면 답글만 추출되고 원글은 추출이 안되는 문제가 발생하네요..
답글이 달린 게시물만 리스트로 출력하는데 원글과 답글을 순서에 맞게 뽑아서 리스트로 뿌리려면
어떤방법이 좋을까요?? 알려주세요~
글 작성을 해도 답글이 달리지 않은글은 출력안하려고 합니다.
답글은 wr_reply필드에 값 A 와 같은 형식으로 들어가는데
$list=mysql_query(select * from board where wr_reply!='');
이런식으로 wr_reply를 포함한 리스트를 먼저 뽑은후에
select * from board where wr_num='$list[wr_reply]'; 요런식으로 하려고 했었는데
그러면 답글만 추출되고 원글은 추출이 안되는 문제가 발생하네요..
답글이 달린 게시물만 리스트로 출력하는데 원글과 답글을 순서에 맞게 뽑아서 리스트로 뿌리려면
어떤방법이 좋을까요?? 알려주세요~
댓글 전체
페이지 리스트도 만들어야 할테니 보통 복잡한 문제가 아닙니다
코드는 아래와 같이 되겠습니다만 직접 테스트하면서 해보세요
1. 답변글이 있는 게시물의 wr_num 추출
$result = sql_query("select distinct wr_num from $write_table where wr_reply<>'' order by wr_num");
2. wr_num이 같은 게시물 중 댓글이 아닌 것을 다시추출하여 $list 만듦
$i=0;
while ($row = sql_fetch_array($result)){
$result2 = sql_query(" select * from $write_table where wr_num = '$row[wr_num]' and wr_is_comment=0 order by wr_num, wr_reply");
while ($row2 = sql_fetch_array($result2)){
$list[$i] = get_list($row2, $board, $board_skin_path, $board[bo_subject_len]);
$i++
}
}
--------------------
1번에서 추출한 wr_num값을 sql query의 IN 함수에 사용할 수 있는 형태로 만들면 loop를 돌며
계속 쿼리하지않고 한번만 쿼리하는 방법도 있습니다
$result2 = sql_query(" select * from $write_table where wr_num IN($tmp_num) and wr_is_comment=0 order by wr_num, wr_reply");
$tmp_num 형태는
$tmp_num="'-2','-5','-10'"; 이런 형태로 만들면 됩니다
코드는 아래와 같이 되겠습니다만 직접 테스트하면서 해보세요
1. 답변글이 있는 게시물의 wr_num 추출
$result = sql_query("select distinct wr_num from $write_table where wr_reply<>'' order by wr_num");
2. wr_num이 같은 게시물 중 댓글이 아닌 것을 다시추출하여 $list 만듦
$i=0;
while ($row = sql_fetch_array($result)){
$result2 = sql_query(" select * from $write_table where wr_num = '$row[wr_num]' and wr_is_comment=0 order by wr_num, wr_reply");
while ($row2 = sql_fetch_array($result2)){
$list[$i] = get_list($row2, $board, $board_skin_path, $board[bo_subject_len]);
$i++
}
}
--------------------
1번에서 추출한 wr_num값을 sql query의 IN 함수에 사용할 수 있는 형태로 만들면 loop를 돌며
계속 쿼리하지않고 한번만 쿼리하는 방법도 있습니다
$result2 = sql_query(" select * from $write_table where wr_num IN($tmp_num) and wr_is_comment=0 order by wr_num, wr_reply");
$tmp_num 형태는
$tmp_num="'-2','-5','-10'"; 이런 형태로 만들면 됩니다