채택완료

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

2014-05-12 (월) 10:01:18 5,356

안녕하세요. :)

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개 / 댓글 2개

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

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

답변에 대한 댓글 1개

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

$sql = " select * from $tmp_write_table where wr_id IN($history) and wr_is_comment = 0";
IN 구문을 사용하면, PK(기본키) 기준으로 자동정렬 된답니다..
구문을 잘 고쳐보세요
 
>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

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개

Remoted님 답변 감사드립니다. :)
$sql = " select * from $tmp_write_table where wr_id IN($history) and wr_is_comment = 0"; 로 적용하였는데,
desc가 적용되었는지, 12345 가 되어버려요.

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