그룹으로 루프를 돌리면서 해당하는 결과값을 정렬하고 싶은데 도움좀 주세요 부탁드립니다.

그룹으로 루프를 돌리면서 해당하는 결과값을 정렬하고 싶은데 도움좀 주세요 부탁드립니다.

QA

그룹으로 루프를 돌리면서 해당하는 결과값을 정렬하고 싶은데 도움좀 주세요 부탁드립니다.

본문

안녕하세요 도움을 얻고자 이렇게 글을 써봅니다

아래는 해당 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  

요거만 넣어도 정렬이 되어서 나올 것 같은데요 

 

$sql = " select * from ".$g4['program_table']." where (1) $sql_where";

$sql.= " order by  year desc,  term desc, subject asc,  school_name asc, faculty asc ";

이렇게 했는데 중복된 데이터만 계속나와서요 ㅠ,ㅠ

해당하는 학년 학기에 신청한 프로그램명과 프로그램 제목이 나와야 되는데

안되네요 ㅠ,ㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 6
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT