wr_id로 정렬된 for문안에서 정렬을 wr_1로 바꿀수 있나요?

wr_id로 정렬된 for문안에서 정렬을 wr_1로 바꿀수 있나요?

QA

wr_id로 정렬된 for문안에서 정렬을 wr_1로 바꿀수 있나요?

본문

$sql = "select * from tableA order by wr_id";
$res = sql_query($sql);

for($i = 0; $row = sql_fetch_array($res); $i++){

           여기에서 정렬기준을 wr_id에서 wr_1로 변경 할수 있나요?

}

 

 

위에 코드처럼 wr_id 로 정렬된 for문 안에서 정렬을 wr_1로 바꿀 수 있나요?

이 질문에 댓글 쓰기 :

답변 5

복잡해질뿐입니다.

꼭 저렇게 해야하는건가요?? 

array에 담아서 wr_1이 뭔지 모르겠지만 큰순,작은순 정렬을 해야합니다. 

쿼리문에서 하는게 쵝옵니다. 

 

쿼리문에 group by 사용하고 않고 wr_id들의 합계를 구하고 wr_1들의 합계를 구해야되는데 제가 지금 구하고 있는 코드 식이 이전wr_id랑 다음wr_id랑 비교해서 구하는건데 wr_id로 정렬되어있으면 이전wr_1 다음 wr_1가 정렬이 안되어 있어서 wr_1들의 합계가 안구해지더라고요.

$sql = "select * from tableA order by wr_id asc, wr_1 asc";

 

wr_1 을 큰값부터 정렬할려면

$sql = "select * from tableA order by wr_id asc, wr_1 desc";

입니다.

위글로는 이해가안되네요.

행끼리 먼저 sum구하고 그다음에는 열끼리 sum한다는 말씀인가요??

 

wr_id로 이전값과 비교하면서 합을 하는데 이전값과 wr_id가 다르면 다시 합계 값은 0으로 초기화 시키고 다시 합계를 구하는 식으로 wr_id 대로 합계를 구하는거 까지 되는데 wr_1도 for문이 돌아갈때 위에 방식대로 하고싶은데 wr_id정렬 기준으로 되어있다보니 wr_1이 뒤죽박죽으로 나와서 중간중간마다 초기화가 되더라고요. 아에 for문을 따로 써야 될까요?

초기화가 되는 부분은 

$wr_1_sum = 0;

for(){    $wr_1_sum = $wr_1+......;   }

이렇게되어서 초기화가되는듯해요.

그래서 

$wr_1_sum_temp = 0;

위와 동일하며 for(){

$wr_1_sum_temp = $wr_1_sum; <<-- 가상변수에 저장함으로.. 남길수있습니다.

$wr_1_sum = $wr_1+......;

처음 시작시 temp는 0이며 for문이 한번씩돌때마다 wr_1_sum이 temp에 저장이 됩니다.

그래서 이전값을 가지고 있기때문에 비교가 가능하실겁니다.

단순히 비교가 필요한 부분이맞나요???

 

3730900014_1579263487.5824.jpg

해당 사진처럼 sum이 되었다면

비교 temp / cnt

0 / 2 < -- 큰값을 저장시

2 / 0

2 / 0

2 / 1

2 / 18

18최종큰값출력

 

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

회원로그인

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