그룹으로 루프를 돌리면서 해당하는 결과값을 정렬하고 싶은데 도움좀 주세요 부탁드립니다. 채택완료
안녕하세요 도움을 얻고자 이렇게 글을 써봅니다
아래는 해당 db이고 출력결과와 같이 해당 학년도 학기로 프로그램명과 프로그램제목을 정렬하고 싶은데
제가 한 결과는 해당 학년과 학기에 중복된 학년과 학기를 하나로 해서 나열하고 해당학년이
중복이 되어서 출력이 됩니다.
과목
ㆍ2014 학년 2학기
- pro1 / sub82
- pro1 / sub93
- pro2 / sub22
- pro2 / sub22
......................
ㆍ2014 학년 1학기
- pro1 / sub82
- pro1 / sub93
- pro2 / sub22
- pro2 / sub22
......................
ㆍ2013 학년 2학기
- pro1 / sub82
- pro1 / sub93
- pro2 / sub22
- pro2 / sub22
- ......................
ㆍ2013 학년 1학기
- pro1 / sub82
- pro1 / sub93
- pro2 / sub22
- pro2 / sub22
- ......................
ㆍ2012 학년 1학기
- pro1 / sub82
- pro1 / sub93
- pro2 / sub22
- pro2 / sub22
- ......................
ㆍ2011 학년 2학기
- pro1 / sub82
- pro1 / sub93
- pro2 / sub22
- pro2 / sub22
- ......................
제가 원하는 결과값은 아래 출력결과처럼
해당 학년, 학기에 신청한 프로그램명과/프로그램제목을 정렬하고 싶어서 이렇게 선배님들께
여쭤보고게 되었습니다 어떻게 하면 좋을까요??
no year term program subject name number school_name faculty
1 2014 1학기 pro1 sub82 홍길동 12345 학교명 학과
2 2014 1학기 pro1 sub93 홍길동 12345 학교명 학과
3 2014 2학기 pro2 sub21 홍길동 12345 학교명 학과
4 2013 1학기 pro2 sub22 홍길동 12345 학교명 학과
5 2013 2학기 pro1 sub64 홍길동 12345 학교명 학과
6 2013 2학기 pro3 sub34 홍길동 12345 학교명 학과
7 2012 1학기 pro1 sub35 홍길동 12345 학교명 학과
8 2012 1학기 pro1 sub31 홍길동 12345 학교명 학과
9 2012 1학기 pro3 sub30 홍길동 12345 학교명 학과
10 2011 2학기 pro3 sub35 홍길동 12345 학교명 학과
============ 출력결과 =============
학교명 : 학교명
학과명 : 학과
성명 : 홍길동
과목
ㆍ2014 학년 2학기
- pro2 / sub21
ㆍ2014 학년 1학기
- pro1 / sub82
- pro1 / sub93
ㆍ2013 학년 2학기
- pro1 / sub34
- pro1 / sub64
ㆍ2013 학년 1학기
- pro2 / sub22
ㆍ2012 학년 1학기
- pro1 / sub35
- pro1 / sub31
- pro3 / sub30
ㆍ2011 학년 2학기
- pro3 / sub35
$sql_where = " and (";for($i=0;$i<count($num_arr);$i++){if($i>0) $sql_where.= " or";$sql_where.= " no='".$num_arr[$i]."'";}$sql_where.= ")";$cnt = 0;$list = array();$sql = " select * from ".$g4['program_table']." where (1) $sql_where";$sql.= " order by year desc, term desc, subject asc, school_name asc, faculty asc ";$sql2 = " select * from ".$g4['program_table']." where (1) $sql_where";$sql2.= " group by year desc having year > 1 ";$result = sql_query($sql);$result2 = sql_query($sql2);while($row2=sql_fetch_array($result2)) {if($list[$i][mp_program] != "특강" && $list[$i][mp_program] != "교수특강" && $list[$i][mp_program] != "Global Program" && $list[$i][mp_program] != "Teaching Fellow 소모임" && $list[$i][mp_program] != "Web" && $list[$i][mp_program] != "이러닝 특강") { echo "ㆍ ".$row2[mp_year]."학년도 ".$row2[mp_term]." ";/*여기에서 프로그램명과 프로그램 제목이 나와야 함*/for($i=0;$row=sql_fetch_array($result);$i++){$sum = 0;$sql_sum_where = " and school_name='$row[school_name]'";if($row[faculty]) $sql_sum_where.= " and faculty='$row[faculty]'";$sql_sum_where.= " and program='$row[program]' and year='$row[year]' and term='$row[term]' and subject='$row[subject]' and datetime='$row[datetime]'";$sum = sumAll($row[schoolname],$row[faculty],$row[program],$row[year],$row[term],$row[subject],$row[datetime] );if($sum>0){$sum_totoal+= $sum;$list[$cnt][year] = $row[year];$list[$cnt][term] = $row[term];$list[$cnt][school_name] = $row[school_name];$list[$cnt][subject] = $row[subject];$list[$cnt][datetime] = $row[datetime];$list[$cnt][faculty] = $row[faculty];$list[$cnt][program] = $row[program];$list[$cnt][division] = $row[division];$list[$cnt][part] = $row[part];$list[$cnt][sum] = $sum; $cnt++;} // end if}echo "";}}답변 1개
order by year DESC, term DESC, program DESC, subject ASC
요거만 넣어도 정렬이 되어서 나올 것 같은데요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
$sql.= " order by year desc, term desc, subject asc, school_name asc, faculty asc ";
이렇게 했는데 중복된 데이터만 계속나와서요 ㅠ,ㅠ
해당하는 학년 학기에 신청한 프로그램명과 프로그램 제목이 나와야 되는데
안되네요 ㅠ,ㅠ