합계금액 문의 드립니다.
본문
영카트 /shop/orderform.php부분에
합계금액 계산을 수정하고자 하는데요..
pt_msg1에 값이 있을경우엔, 총 합계금액이 pt_msg1로
pt_msg1에 값이 없을 경우엔 아래 기존 합계금액 계산식으로 나오고자 하는데
어케 추가수정을 해야할까요
// 합계금액 계산
$sql = " select SUM(IF(io_type = 1, (io_price * ct_qty), ((ct_price + io_price) * ct_qty))) as price,
SUM(ct_point * ct_qty) as point,
SUM(ct_qty) as qty
from {$g5['g5_shop_cart_table']}
where it_id = '{$row['it_id']}'
and od_id = '$s_cart_id' ";
$sum = sql_fetch($sql);
답변 2
작성하신 코드 하단에
$pt_msg가 존재하는지 공백은 아닌지, 문자이면 숫자로변환 시켜 체크해야
오류가 없습니다.
if (isset($pt_msg) && $pt_msg != "" && intval($pt_msg) > 0)
echo number_format($pt_msg)."원";
else
echo number_format($sum['price'])."원";
숫자로 변환이 되고 안되고를 확인하시려면
중간에 해당 내용을 출력해보시는게 좋습니다.
위의 구문중 협의금액이 있는경우..
if($row['pt_msg1']) { <-- 숫자로만 기록되나요?
// 합계금액 계산 (협의금액이 있을경우)
$sql = " select SUM(pt_msg1 * 1) as price,
SUM(ct_point * ct_qty) as point,
SUM(ct_qty) as qty
from {$g5['g5_shop_cart_table']}
where it_id = '{$row['it_id']}'
and od_id = '$s_cart_id' ";
$sum = sql_fetch($sql);
} else {
// 합계금액 계산 (협의금액이 없을경우)
$sql = " select SUM(IF(io_type = 1, (io_price * ct_qty), ((ct_price + io_price) * ct_qty))) as price,
SUM(ct_point * ct_qty) as point,
SUM(ct_qty) as qty
from {$g5['g5_shop_cart_table']}
where it_id = '{$row['it_id']}'
and od_id = '$s_cart_id' ";
$sum = sql_fetch($sql);
}
두가지 경우다 쿼리상에서
price 와 point를 추출하는 형태이고 뒷부분만 다른경우
문장을 축소시킬수있습니다.
if($row['pt_msg1']) { // 제가 모호하게 생각하는 부분은 이부분입니다
// 합계금액 계산 (협의금액이 있을경우)
$sql = " select SUM(pt_msg1 * 1) as price, "
} else {
// 합계금액 계산 (협의금액이 없을경우)
$sql = " select SUM(IF(io_type = 1, (io_price * ct_qty), ((ct_price + io_price) * ct_qty))) as price, "
}
$sql .= " SUM(ct_point * ct_qty) as point,
SUM(ct_qty) as qty
from {$g5['g5_shop_cart_table']}
where it_id = '{$row['it_id']}'
and od_id = '$s_cart_id' ";
$sum = sql_fetch($sql);
!-->