그룹으로 루프를 돌리면서 해당하는 결과값을 정렬하고 싶은데 도움좀 주세요 부탁드립니다. 채택완료
안녕하세요 도움을 얻고자 이렇게 글을 써봅니다 아래는 해당 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개
답변을 작성하려면 로그인이 필요합니다.
로그인
$sql.= " order by year desc, term desc, subject asc, school_name asc, faculty asc ";
이렇게 했는데 중복된 데이터만 계속나와서요 ㅠ,ㅠ
해당하는 학년 학기에 신청한 프로그램명과 프로그램 제목이 나와야 되는데
안되네요 ㅠ,ㅠ