2009. 12. 3.

게시판 리플달기

1. 게시판화면

no       family_no    depth       title

7             0               0           3
6             0               0           2
5             6               1             [Re]:23
4             5               2                  [Re]:[Re]:23
3             6               1             [Re]:2
2             3               2                   [Re]:[Re]:22
1             0               0           1


------------------------------------------------------------------------------------
2. DB입력시 쿼리문과 변수

//답글이 중간에 삽입될 경우 해당글보다 최신글은 모두 글번호 +1 한다.
$qry2="update board set no=no+1 where no >= $no";

$family_no = $no + 1;
$depth++;

//insert 문 이용해서 DB에 저장 (공지사항에도 답글은 달수 있지만 상위에 따로 보여주진 않는다.)
$qry1 = "INSERT INTO board VALUES('$no','$name','$title','$content', sysdate, 0, 0, '$family_no', $depth)";

// 답글달기 family_no+1 (no < $no)
$qry3="update board set family_no=family_no+1 where no < $no and family_no >= $no";

// 답글달기 family_no+1 (no > $no)
$qry4="update board set family_no=family_no+1 where no > $no and family_no != 0";

 

----------------------------------------------------------------------------------
3. DB에서 꺼내서 list출력시 쿼리문

select * from board order by no desc

select no, family_no, depth, name, title, substr(title, 1, $len) as ti, content,
to_char(gdate, 'mm/dd/yyyy') as gdate, click, gongji
from (select no, family_no, depth, name, title, content, gdate, click, gongji,
rownum as rnum from(select * from board order by no desc))
where rnum between '$min' and '$max'

 

$len: 제목이 너무 길경우 길이제한하는 변수

$min & $max: 게시판의 글을 10개씩 출력해주기 위한 변수

- 06년 12월 1일 13시 30분 -

댓글 없음:

댓글 쓰기