>> Edit article
이름
제목
패스워드
우선은 테이블에 세개의 필드를 만든다. create table thread ( num int not null default '0' auto_increment, a int not null default '0', b int not null default '0', primary key (num), index reply (a,b) ); mysql > select * from thread; +-----+----+---+ | num | a | b | +-----+----+---+ | 1 | 1 | 0 | | 2 | 2 | 0 | | 3 | 3 | 0 | | 4 | 1 | 1 | | 5 | 5 | 0 | | 6 | 1 | 2 | | 7 | 1 | 1 | | 8 | 8 | 0 | | 9 | 1 | 2 | | 10 | 3 | 1 | | 11 | 3 | 2 | | 12 | 3 | 1 | | 13 | 13 | 0 | | 14 | 13 | 1 | | 15 | 13 | 1 | | 16 | 13 | 1 | | 17 | 2 | 1 | | 18 | 13 | 2 | | 19 | 13 | 1 | | 20 | 13 | 1 | | 21 | 13 | 1 | | 22 | 2 | 2 | | 23 | 2 | 1 | +-----+----+---+ 이런 식으로 나열된다. 그럼 이걸 어케 하냐믄.. 쩝.. mysql > select * from thread order by a desc, b asc, num asc; +-----+----+---+ | num | a | b | +-----+----+---+ | 13 | 13 | 0 | 13 어쩌구 저쩌구 | 14 | 13 | 1 | 위 원문의 답변 -> 답변) 어쩌구 저쩌구 | 15 | 13 | 1 | 위 답변글의 답변 -> 답변) 답변) 어쩌구 저쩌구.. | 16 | 13 | 1 | ... -> | 19 | 13 | 1 | -> | 20 | 13 | 1 | | 21 | 13 | 1 | | 18 | 13 | 2 | 위 13번 원문의 답변 -> 답변) 어쩌구 저쩌구 | 8 | 8 | 0 | 8 엘롱 에롱~~~~~ | 5 | 5 | 0 | | 3 | 3 | 0 | 3 훔냥 훔냥.. 헤롱헤롱.. | 10 | 3 | 1 | -> 답변) 훔냥 훔냥.. 헤롱헤롱.. | 12 | 3 | 1 | -> 답변) 답변) 훔냥훔냥... | 11 | 3 | 2 | -> 답변) 훔냥 훔냥.. 헤롱... | 2 | 2 | 0 | | 17 | 2 | 1 | | 23 | 2 | 1 | | 22 | 2 | 2 | | 1 | 1 | 0 | | 4 | 1 | 1 | | 7 | 1 | 1 | | 6 | 1 | 2 | | 9 | 1 | 2 | +-----+----+---+ 이렇게 나온다. 이해 하실련지 ????? 우선은 a 를 역순으로 정열(최근 글이 앞에온다.) 그리고는, b 를 정순으로 정열한다. (번호가 같으면 바로 위의 글의 답변이다.) ex ) b = 0 --> 원문이고, b = 1 --> 원문에 대한 첫번째 답변이다. b = 2 --> 원문에 대한 두번째 답변이다. .... 그러고선 b 가 같으면 바로 위의 글에 대한 답변으로서 인식된다. 리스트 출력시엔, 바로 전글의 a 와 b를 비교해서 a 가 같으면 한칸 밀어버리고(답변이므로..) b 가 같으면 한칸 밀어버린다. 이런 식으로 뿌리면 될것 같다. 훔냥.. limit 를 써서 페이지 구현도 가능할까도 생각했지만 내 머리론.. 힘들것 같당~ 누가 좀.. 도와줘여~ 히잉~~~~~~~~~~~~~!!! 훔.. 그럼... 좋은 하루 되셔요~ 페이지 나눔에는 b=0 일때만 나눠서 어쩌구 하면 될것 같네여.. 나름대로.. 스타일이 있으니까.. 그건.. 알아서 해주셔요~ 질문은... 이 밑에 써주셔요~ 헤롱~ 나쁜 점이 있으면.. 써주구여~
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved