SQL문 질문 입니다.
본문
아래 쿼리문으로 테이블에서 강사명(시설명)(rm_ix)과 강의시작시간 정보를 가져와서 테이블에 표시 해주려고 합니다.
그런데 시간순으로 정렬 안됩니다.ㅠ.ㅠ
혹시 뭐가 잘못되었는지 알려 주시면 감사 하겠습니다.
rm_ix는 강사명이고 위의 time테이블에서 날자와 시간정보를 가져와 정렬해야하는데 예를들어
A강사와 B강사가 있고 강의시간이 A강사의 강의시간이 10시-11시 16시-17시 이고 B강사의
강의시간이 14시-15시라면
주간일정표의 날자에는
===============
A강사 10시-11시
B강사 14시-15시
A강사 16시-17시
===============
이러케 출력되야 하는데
===============
A강사 10시-11시
A강사 16시-17시
B강사 14시-15시
===============
식으로 출력됩니다....뭐를 잘못한걸까요? 고견 부탁 드리겠습니다. 꾸벅~
아래는 테이블과 코드입니다.
// 시간정보
$query2 = " select DATE_FORMAT(rmt_time, '%H:%i') AS time_only,rmt_ix, rmt_time_end, rmt_max_cnt, rmt_date from {$g5['wzb_room_time_table']} where rm_ix = '".$row['rm_ix']."' and (rmt_date between '".$sch_date_fr."' and '".$sch_date_to."') order by time_only asc";
$res2 = sql_query($query2);
while($row2 = sql_fetch_array($res2)) {
$row['rmt_ix'] = $row2['rmt_ix'];
$row['frtime'] = $row2['time_only'];
$row['totime'] = $row2['rmt_time_end'];
$row['max_cnt'] = $row2['rmt_max_cnt'];
$arr_room[$row2['rmt_date']][$row2['time_only']][] = $row;
}
답변 3
데이터() 출력하는 부분 소스도 올려 보시겠어요.
아니면 while loop다음에
Print_r( $arr_room);
해서 순서를 확인해 보세요.
order by
DATE_FORMAT( time_only
, '%Y%m%d%H%i%s' ) asc
정렬 부분을 이렇게 한번 해보시겠어요?
일단 order by 에서는 DATE_FORMAT 적용된 alias를 쓰실 필요 없을거 같고요
쿼리만 보았을 땐 날짜값 범위만 있고 정렬 기준은 없어보이는데 between 날짜값에 30일 하루만 넣어도 결과가 같으신가요?
답변을 작성하시기 전에 로그인 해주세요.