여분필드 여러개 항목 한번에 정렬

여분필드 여러개 항목 한번에 정렬

QA

여분필드 여러개 항목 한번에 정렬

본문

/bbs/list.php

리스트 파일에 정렬할 필드를 넣어놨습니다.

 


if (!$sst) {
    if ($board['bo_sort_field']) {
        $sst = $board['bo_sort_field'];
    } else {
        $sst  = "wr_num, wr_reply";
        $sod = "";
    }
} else {
    $sst = preg_match("/^(wr_datetime|wr_hit|wr_good|wr_nogood|ca_name|wr_34|wr_35|wr_36|wr_37|wr_39|wr_44|wr_45|wr_50|wr_51|wr_56|wr_60||wr_13|wr_14|wr_15|)$/i", $sst) ? $sst : "";
}

 

그리고 list.skin.php 파일에서 이렇게 하나씩 정렬하면 정렬이 잘되는데

<?=subject_sort_link('wr_51', $qstr3, 1)?>

 

여러 여분필드(형식은 같음)를 한번에 정렬해야해서 이런식으로 했는데 정렬이 제대로 안되네요.

<?=subject_sort_link('wr_51,wr_39,wr_37', $qstr2, 1)?>

 

해결가능한 방법이 있을까요? 몇일째 헤매고 있네요..

도와주시면 감사하겠습니다! 

이 질문에 댓글 쓰기 :

답변 1

subject_sort_link 함수를 보시면...

첫번자인자가 sst에 들어간 url을 만들어주네요.

 

즉,

sst=wr_51,wr_39,wr_37 이 만들어진다는 거겠죠.

 

이것은 리스트 쿼리에서 처리하게 되면...

 

아마도 select ~~~ order by wr_51,wr_39,wr_37 desc 가 만들어지겠죠.

보시면 아시겠지만...

 

order by는

wr_51먼저 기본 asc로 먼저 정렬이 되고 중복정렬인 경우에만 wr_39 asc의 정렬조건에 따르고 거기서 다시 중복정렬인경우 wr_37의 desc가 적용됩니다..

 

따라서 별 중복이 없으면 항상 wr_51 asc의 정렬로 계속 나올거라 예상이 되어지네요.

 

가장 쉬운 해결책은 첫번째인자에 'wr_51 desc,wr_39 desc,wr_37' 로 정렬순서도 포함하여 넣는 방법입니다. 맨마지막 wr_37은 기본적으로 desc가 들어가고 또는 3번째 인자값에 desc나 asc로 넣는게 맨마지막으로 할당될거라 예상되어집니다.

 

두서없이 적었지만 아마 맞을거라 생각됩니다. 

답변을 작성하시기 전에 로그인 해주세요.
전체 46
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT