상세 컨텐츠

본문 제목

계층형 게시판(답변글 하단정렬)

Programming/php

by luckey 2022. 6. 23. 11:40

본문

테이블구조

이름 내용
idx 고유번호
grpNo 그룹번호(원글번호)
grpOrd 출력순서
depth 게시물 깊이
bTitle 게시물 제목


일반등록
grpNo = 0, grpOrd = 0, depth = 0 으로 등록
데이터 등록이후 grpNo 값을 현재 등록한 게시물의 고유번호 값으로 update

답글등록
1. 원글에 대한 정보(grpNo, depth) 를 가져와서 데이터 등록시 grpNo, depth+1
2. 등록하고자 하는데이터가 최종 데이터 인지 확인

select min(grpOrd) from BOARD where idx = 부모 idx
and grpOrd > 부모 grpOrd
and depth <= 부모 depth


3-1. 등록하고자 하는 데이터가 최종 데이터인 경우(최종 grpOrd 값으로 등록)

select max(grpOrd) from BOARD where grpNo = 부모 grpNo

grpNo = 결과값 + 1

3-2. 등록하고자 하는 데이터가 최종이 아닌경우(중간에 끼어들어가는 경우)
grpNo = 2에서 나온 min 데이터

update BOARD set grpOrd = grpOrd + 1 where grpNo = 부모 grpNo
and grpOrd >= 부모 grpOrd

이후 grpOrd의 값을 모두 +1 처리

등록된 데이터

 

grpNo DESC, grpOrd ASC

 

참고
https://okky.kr/article/98829

관련글 더보기

댓글 영역