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

여분필드 값에 해당 되는 값이 다른 여분필드에 저장 관련 문의 채택완료

달료라 1년 전 조회 2,436

</p>

<p>function get_shipping_cost($wr_20) {

    $shipping_table = [

  '0.5' => 900, '1.0' => 1000,

    ];</p>

<p>  

    return $shipping_table[number_format($wr_20, 1)] ?? null;

}</p>

<p>

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 값 설정</p>

<p>    // 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'");

    }

}</p>

<p>

위 내용은 wr_20에 값이 들어가면 wr_22에 저장이 되게 write_update.skin 파일에 있는 건데요

  $shipping_table 안에 더 많은 걸 넣으려고 하는데, 

이를테면 0.01~0.5 까지는 900  0.51~1.0까지는 1000 이렇게 하고 싶은데, 나중에는 더 넣고 싶은데 이거를  간단하게 넣을 수 있는 방법이 있을까요?

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

답변 2개

채택된 답변
+20 포인트
1년 전

</p>

<p>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],

        // 필요에 따라 더 많은 구간을 추가할 수 있습니다.

    ];</p>

<p>    foreach ($shipping_table as $rate) {

        if ($weight >= $rate['min_weight'] && $weight <= $rate['max_weight']) {

            return $rate['cost'];

        }

    }</p>

<p>    // 정의된 범위를 벗어나는 경우 처리

    return end($shipping_table)['cost'];

}</p>

<p> </p>

<p>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}'");

    }

}</p>

<p>

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

답변에 대한 댓글 1개

달료라
1년 전
소중한 답변 감사합니다.` 알려주신 것으로 하니 잘 되네요^^

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

1년 전

$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);

이렇게 하시면 쉽게 해결되겠네요.

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

답변에 대한 댓글 1개

달료라
1년 전
소중한 답변 감사합니다~^^

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

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

로그인