테스트 사이트 - 개발 중인 베타 버전입니다

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

가가양 10년 전 조회 3,167

안녕하세요 도움을 얻고자 이렇게 글을 써봅니다 아래는 해당 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개

채택된 답변
+20 포인트

order by ​year DESC,  term DESC, program DESC, subject ASC  

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

가가양
10년 전
$sql = " select * from ".$g4['program_table']." where (1) $sql_where";

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

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

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

안되네요 ㅠ,ㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인