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

더하기 너무 어렵네요 채택완료

머시기거시기 6년 전 조회 4,475

현재 아래와 같이 뽑았는데요..

 
년-월 그래프 월별입금 월별환불 월별실적 비율(%)
총계 227,451 -8,108   100%
2019-04   26,327 0   11.6
2019-03   59,622 0   26.2
2019-02   71,399 0   31.4
2019-01   70,102 0   30.8

월별환불은 데이터를 뽑아오지 못하네요... 0으로 나와버리는 상황입니다.

wr_255값도 월별로 뽑아야 하거든요..

 

코드는 다음과 같습니다. 어떻게 고쳐야 월별환불 칸에 나올까요?

 

auth_check($auth[$sub_menu], 'r');

$g5['title'] = '월별 실적'; include_once('./member_count.sub.php');

$colspan = 6;

$max = 0; $sum_total = 0; $sql = " select SUBSTRING(wr_datetime,1,7) as vs_month, sum(wr_8) as total, sum(wr_255) as refund             from g5_write_admin             where date(wr_datetime) between '{$fr_date}' and '{$to_date}'             group by vs_month             order by vs_month desc";

$result = sql_query($sql); for ($i=0; $row=sql_fetch_array($result); $i++) {     $arr[$row['vs_month']] = $row['total'];

    if ($row['total'] > $max) $max = $row['total'];

    $sum_count += $row['total'];

    $sum_refund += $row['refund'];

}

?>

                                                        

       

                                                                 

   

   

        $value) {             $count = $value;

            $rate = ($count / $sum_count * 100);             $s_rate = number_format($rate, 1);

            $bg = 'bg'.($i%2);

    ?>

   

               

       

       

       

       

   

   

    } else {         echo '

';     }     ?>

   

   
목록
년-월그래프월별입금월별환불월별실적 비율(%)
총계100%
           
                           
       
자료가 없습니다.

 

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

답변 3개

채택된 답변
+20 포인트
플래토
6년 전

wr_255에 0이나 숫자가 아닌 값이 있나요?

데이타를 좀 정제하신후에 sum을 돌리시는게 나을거 같네요

 

한방쿼리로 만들더라도

sub_query로 추가하셔야 할듯 한데..

 

그래도

 

sum(if(wr_255 >= 0,wr_255,if(wr_255 < 0,wr_255,0))) as refund

 

로 대치해보세요

 

숫자가 아니면 0으로 변경하는겁니다

 

그리고,

추출한  re_fund를 변수상에 넣는 부분이 없네요

 

하단에 출력을 처리할때는 $row로 접근한것도 잘못이구요

 

다시말해

 

$arr에 total을 넣듯

$arr2를 하나 만드시고

for문 전에 $arr2= array();

를 선언하고

$arr과 같은 패턴으로 $row['refund']를 대입해서

 

하단에 $row영역에 $arr2로 변경하세요

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

답변에 대한 댓글 5개

플래토
6년 전
폰으로 작성하니 변수가 안보여서
댓글로 추가합니다

$arr2 =array();

for ($i=0; $row=sql_fetch_array($result); $i++) {
$arr[$row['vs_month']] = $row['total'];
$arr2[$row['vs_month']] = $row['refund'];
if ($row['total'] > $max) $max = $row['total'];

$sum_count += $row['total'];


$sum_refund += $row['refund'];

}


...

하단에서


<td class="td_numbig"><?php echo number_format($row[refund]) ?></td>

영역을

<td class="td_numbig"><?php echo number_format($arr2[$key])?></td>
로 해주셔야 할것 같네요
머시기거시기
6년 전
아 감사합니다. 이거 때문에 삽질 많이 했는데...잘 나옵니다.
거듭 감사합니다.!!
플래토
6년 전
@머시기거시기
답글을 휴대폰으로 입력해서 오류가 있을줄알았는데 ,
잘되신다니 다행입니다.
머시기거시기
6년 전
역시 실력자세요!
관심만도 감사한데..이걸 폰으로 작성해주시다니 감사합니다.
플래토
6년 전
@머시기거시기
별말씀을요..^^

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

럭셔리보더

foreach 를 쓸이유가 없는데 왜 꼭 저기에 넣으셨나요?

for문 아래에서 한번더 돌리면 간단하게 해결되요 ㅎㅎ

 

 $result = sql_query($sql);  for ($i=0; $row=sql_fetch_array($result); $i++) {

}

 

이거 한번더 쓰셔서 처리하시는게 좋을것같은데요

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

답변에 대한 댓글 1개

머시기거시기
6년 전
내가 한게아니에요,,https://sir.kr/g5_plugin/199 이분이 그렇게 한거에요,,ㅋ

어쨌거나 이렇게 했는데 간단히 안되네요ㅡㅡ

$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$arr[$row['vs_month']] = $row['total'];



if ($row['total'] > $max) $max = $row['total'];

$sum_count += $row['total'];


$sum_refund += $row['refund'];

}

$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$arr[$row['vs_month']] = $row['refund'];



if ($row['refund'] > $max) $max = $row['refund'];


$sum_refund += $row['refund'];

}

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

럭셔리보더

 

이부분 $row 이건 위에 for에 있고 아래의 foreach 에는 없네요.

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

답변에 대한 댓글 1개

머시기거시기
6년 전
그런거 같습니다.
foreach 부분을 어떻게 고쳐줘야 할지,,프로그래머가 아니라 모르겟습니다. 휴

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

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

로그인