왜 순서대로 출력이 안 되는 걸까요?
관련링크
본문
g5_menu 테이블
me_id | me_code | me_name | me_link | me_target | me_order | me_use | me_mobile_use |
---|---|---|---|---|---|---|---|
17 | 10 | 그룹1 | http://127.0.0.1/mw5/bbs/group.php?gr_id=G01 | self | 10 | 1 | 1 |
18 | 1010 | 소메뉴1 | http://127.0.0.1/mw5/bbs/board.php?bo_table=S01 | self | 1020 | 1 | 1 |
19 | 1020 | 소메뉴2 | http://127.0.0.1/mw5/bbs/board.php?bo_table=S02 | self | 1010 | 1 | 1 |
$sql = " select * ";
$sql.= " from {$g5['menu_table']} ";
$sql.= " order by convert(me_order, char), me_id ";
$qry = sql_query($sql);
while ($row = sql_fetch_array($qry)) {
print_r2($row);
}
위 결과값이
17 18 19 ...이렇게 순서대로 출력되지 않고,
왜 아래처럼 17 19 18 순으로 출력되는 걸까요?
Array
(
[me_id] => 17
[me_code] => 10
[me_name] => 그룹1
[me_link] => http://127.0.0.1/mw5/bbs/group.php?gr_id=G01
[me_target] => self
[me_order] => 10
[me_use] => 1
[me_mobile_use] => 1
)
Array
(
[me_id] => 19
[me_code] => 1020
[me_name] => 소메뉴2
[me_link] => http://127.0.0.1/mw5/bbs/board.php?bo_table=S02
[me_target] => self
[me_order] => 1010
[me_use] => 1
[me_mobile_use] => 1
)
Array
(
[me_id] => 18
[me_code] => 1010
[me_name] => 소메뉴1
[me_link] => http://127.0.0.1/mw5/bbs/board.php?bo_table=S01
[me_target] => self
[me_order] => 1020
[me_use] => 1
[me_mobile_use] => 1
)
답변 2
order by me_id asc;
이렇게 하시면요?
그누보드 소스를 보지 못해서, convert() 가 뭔지 잘 모르겠네여...
order by convert(me_order, char), me_id
이부분이 출력순서를 정하는 부분입니다.
1순위 : convert(me_order, char) // me_order 라는 필드가 현재 숫자형(int) 을 문자형(char) 으로 변경
2순위 : 만일 me_order 값이 같다면 me_id 값이 낮은게 먼저란 뜻입니다.
me_order 은 노출하는 순서를 지정하는 필드입니다.
관리자에서 해당 순서를 변경하시면 될꺼에요....