여분필드 값에 해당 되는 값이 다른 여분필드에 저장 관련 문의
본문
function get_shipping_cost($wr_20) {
$shipping_table = [
'0.5' => 900, '1.0' => 1000,
];
return $shipping_table[number_format($wr_20, 1)] ?? null;
}
if (isset($_POST['wr_20'])) {
$wr_20_value = floatval(trim($_POST['wr_20'])); // wr_20 값을 숫자로 변환하여 가져옴
$wr_22_value = get_shipping_cost($wr_20_value); // wr_20에 따른 wr_22 값 설정
// wr_22 값이 설정되었으면 DB에 저장
if (!is_null($wr_22_value)) {
sql_query("UPDATE {$write_table} SET wr_22 = '$wr_22_value' WHERE wr_id = '$wr_id'");
}
}
위 내용은 wr_20에 값이 들어가면 wr_22에 저장이 되게 write_update.skin 파일에 있는 건데요
$shipping_table 안에 더 많은 걸 넣으려고 하는데,
이를테면 0.01~0.5 까지는 900 0.51~1.0까지는 1000 이렇게 하고 싶은데, 나중에는 더 넣고 싶은데 이거를 간단하게 넣을 수 있는 방법이 있을까요?
!-->답변 2
function get_shipping_cost($weight) {
$shipping_table = [
['min_weight' => 0.01, 'max_weight' => 0.5, 'cost' => 900],
['min_weight' => 0.51, 'max_weight' => 1.0, 'cost' => 1000],
// 필요에 따라 더 많은 구간을 추가할 수 있습니다.
];
foreach ($shipping_table as $rate) {
if ($weight >= $rate['min_weight'] && $weight <= $rate['max_weight']) {
return $rate['cost'];
}
}
// 정의된 범위를 벗어나는 경우 처리
return end($shipping_table)['cost'];
}
if (isset($_POST['wr_20'])) {
$wr_20_value = floatval(trim($_POST['wr_20']));
$wr_22_value = get_shipping_cost($wr_20_value);
if (!is_null($wr_22_value)) {
sql_query("UPDATE {$write_table} SET wr_22 = '{$wr_22_value}' WHERE wr_id = '{$wr_id}'");
}
}
$wr_18 = '0.5#900|1.0#1000'; // 예시 데이터
예를들어 wr_18번 여분필드에 값을 위와 같이 넣습니다.
$shipping_array = []; // 문자열을 |로 분리
$items = explode('|', $wr_18);
foreach ($items as $item) { // 각 항목을 #로 분리
list($key, $value) = explode('#', $item); // 배열에 추가
$shipping_array[$key] = (int)$value; // 값을 정수로 변환하여 저장
} // 결과 출력
print_r($shipping_array);
이렇게 하시면 쉽게 해결되겠네요.
답변을 작성하시기 전에 로그인 해주세요.