[wr_id IN 문의] latest로 게시물을 부르면, 자동으로 5,4,3,2,1 로 정열되어 버려요.

[wr_id IN 문의] latest로 게시물을 부르면, 자동으로 5,4,3,2,1 로 정열되어 버려요.

QA

[wr_id IN 문의] latest로 게시물을 부르면, 자동으로 5,4,3,2,1 로 정열되어 버려요.

본문

안녕하세요. :)


latest 로 게시물을 where wr_id IN(1,5,3,2,4) 방식으로 불러오는데요.

출력순서를 1,5,3,2,4 그대로 하고싶은데,

자동으로 5,4,3,2,1 로 정열되어 버려요.

1,5,3,2,4 그대로 하려면 어떻게해야 되나요?




latest.lib 부분

$history ="1,5,3,2,4";

$sql = " select * from $tmp_write_table where wr_id IN($history) and wr_is_comment = 0 order by wr_num limit 0, $rows ";

이 질문에 댓글 쓰기 :

답변 4

sql은 order by 를 이용해서 정렬을 합니다.
위의 구문은 order by wr_num 으로 되어있어서 wr_num 순으로 정렬된것입니다.
sql에서 원하시는 방법으로 정렬을 하실려면, 테이블에 별도의 정렬기준을 필드를 추가하신후
order by를 추가된 필드로 설정하셔야 합니다.

위처럼 하지 않으실려면, 1,5,3,2,4 순으로 하나씩 조회하셔서 출력하셔야 합니다.

root님 반가워요. :) 답변 감사드립니다.ㅎ
1,5,3,2,4 가 $history[0] $history[1] $history[2] $history[3] $history[4] 인데요.
order by wr_num 대신 order by  $history 식으로 구현 하는식의 방법으로는 안될까요?
이런식으로 해결은 불가능 할까요?

latest.lib 부분

$history ="1,5,3,2,4";

$sql = " select * from $tmp_write_table where wr_id IN($history) and wr_is_comment = 0 order by wr_num limit 0, $rows ";


order by 구문을 없애시면 됩니다.

odder by 구문을 넣을시, default 로 asc 가 적용되기 때문에 54321 로 자동 적용되는 것이구요,

desc 로 적용하면 12345 가 되겟지만,


sql 구문을 고쳐보면 다음과 같이 되겟죠


$sql = " select * from $tmp_write_table where wr_id IN($history) and wr_is_comment = 0";


>1,5,3,2,4 가 $history[0] $history[1] $history[2] $history[3] $history[4] 인데요.
>order by wr_num 대신 order by  $history 식으로 구현 하는식의 방법으로는 안될까요?
>이런식으로 해결은 불가능 할까요?

$history[]에 wr_id를 가지고 있다면
$history[]를 만들때 제목도 넣어 두셨다가
별도의 조회 없이 $history[]를 출력하시는 것이 좋을 것 같습니다.

배열도 소팅이 가능하므로, 별도의 소팅이 필요하시면 다음 자료를 참고하세요.
http://docs.php.net/manual/en/array.sorting.php

$sql = " select * from $tmp_write_table where wr_id IN($history) and wr_is_comment = 0";
IN 구문을 사용하면, PK(기본키) 기준으로 자동정렬 된답니다..
구문을 잘 고쳐보세요
 
답변을 작성하시기 전에 로그인 해주세요.
전체 124,108 | RSS
QA 내용 검색

회원로그인

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