채택완료

댓글을 추천 순으로 정렬하는 법

2024-07-07 (일) 07:18:39 18,858

댓글에 추천 비추천 기능을 넣었고 아래 코드를 활용하여 추천순으로 정렬되게 했습니다.

Copy
$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and wr_comment_reply = '' order by wr_good desc ";

위 코드대로 하니 댓글에 달린 답변을 안 불러옵니다.

그래서

Copy
wr_comment_reply = ''
를 빼버리고

아래 코드대로 하니 댓글과 댓글에 달린 답변이 뒤죽박죽 다 섞여서 오직 추천순대로만 나타납니다.

Copy
$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_good desc ";

그래서

1. 일단 wr_comment_reply = ''를 wr_good 내림차순으로 정렬

2. wr_comment_reply != ''인 것을 불러와서 위 1번 정렬된 댓글에 wr_comment 값이 같은 것들과 그룹 지음

위 1~2번 대로 하면 댓글 추천 순이 제대로 될 거 같은데 어떻게 쿼리를 짜야할까요?ㅠㅠ

아니면 더 좋은 방법이 있을까요?ㅜㅜ

|

답변 2개 / 댓글 4개

채택된 답변
+20 포인트

댓글에 1차 답글, 2차...계속 답글이 붙으면 일번쿼리나 서브쿼리로 하기는 어려울 것 같군요

wr_comment_reply = ''를 wr_good 내림차순으로 리스트를 만든 다음

리스트에서 동일한 wr_comment 이고 wr_comment_reply 문자 갯수가 1개인 것을 order by wr_good 하는 쿼리를 하고 

이렇게 나온 리스트에서 다시 동일한 wr_comment 이고 wr_comment_reply 문자 갯수가 2개인 것을 

order by wr_good 하는 쿼리....~~

이렇게 해서 쿼리해서 값이 없을때 까지 반복하는 코드를 만들어야 할 것 같군요

답변에 대한 댓글 1개

답변 감사합니다 균이님 대댓글은 1단계만 설정해둬서요. 그런 경우에어떻게 쿼리를 만들어야할까요 ㅜㅜ
2024-07-07 (일) 13:34:54

최신댓글 을 가져오기 위해서 이게 쉽지가 않을거에요

먼저 latest skin 를 수정을 해줘야하는데 이는 공용으로 쓰는 라이브러리함수를 수정을 해줘야

해결이 될거에요. 또한 이를 조건에 따라서 호출방식이 달라질수도있구요.

하여

해당 최신글 latest 스킨을 제작의뢰 하셔야 될것같습니다.

답변에 대한 댓글 3개

감사합니다 웅프님. 한 게시글 내에 댓글을 추천순으로 정렬하는 건데 latest skin이랑도 관련이 있나요?
네스킨에서는 정열을 기준을 정하지는 않습니다.
그렇면
라이브러리 함수가 관련있다라는거지요
공용이라서요.. 이 함수의 기본정의는 날짜순의로 최신글을 호출하도록 정열하게 되어잇습니다.
하여 이를 원한는 정열을 처리 하기위해서는 함수를 수정을 해줘야할거에요
네 알겠습니다 감사합니다 웅프님!!

답변을 작성하려면 로그인이 필요합니다.