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

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

QA

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

답변 5

본문

$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들의 합계가 안구해지더라고요.

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

행끼리 먼저 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최종큰값출력

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 3,232
© SIRSOFT
현재 페이지 제일 처음으로