배열을 DB에 UPDATE 하려고 합니다

배열을 DB에 UPDATE 하려고 합니다

QA

배열을 DB에 UPDATE 하려고 합니다

본문

안녕하세요.

몇가지 질문 좀 드리고자 합니다.

 

A.php

B.php

 

두 개의 파일이 있고

 

A.php에는


<?php
  $sql = " select * from company_item_option_temp where mb_id='{$member['mb_id']}' ";
  $result = sql_query($sql);
  for ($i=0; $row=sql_fetch_array($result); $i++) {
?>
   <tr>
     <td><input type="text" name="value_1[]" value="<?php echo $row['value_1'];?>"></td>
     <td><input type="text" name="value_2[]" value="<?php echo $row['value_2'];?>"></td>
     <td><input type="text" name="price[]" value="<?php echo $row['price'];?>"></td>
     <td><input type="text" name="quantity[]" value="<?php echo $row['quantity'];?>"></td>
     <td><input type="text" name="status[]" readonly style="border:0" value="<?php echo $row['status'];?>"></td>
     <td>
        <select name="op_use[]">
          <option><?php if ($row['op_use'] == 'Y') { echo "Y"; } else { echo "N"; }?></option>
          <option><?php if ($row['op_use'] == 'Y') { echo "N"; } else { echo "Y"; }?></option>
        </select>
     </td>
     <td><input type="text" name="manage_code[]" value="<?php echo $row['manage_code'];?>"></td>
     <td><a href="javascript:thumnail_popup('<?php echo $row['thumnail'];?>',400,400)"><img src="<?php echo $row['thumnail']; ?>" width="30"></a></td>
  </tr>
<?php } ?>

이렇게 input 값을 배열로 받을 수 있게끔 해놨습니다. 

(모든 소스는 아닙니다. 오해마시길..)

 

SELECT로 1차 지정된 값을 받아오고 for문으로 input에 값을 넣어줬습니다.

그리고 사용자가 임의로 값을 변경해서 submit을 하게 되면,

 

B.php 에서는


for ($j = 0; $j <= $i; $j++) {
  $sql = " update company_item_option_temp set
          type     = '{$type}',
          value_1  = '{$_POST['value_1'][$j]}',
          value_2  = '{$_POST['value_2'][$j]}',
          price    = '{$_POST['price'][$j]}',
          quantity = '{$_POST['quantity'][$j]}',
          status   = '{$_POST['status'][$j]}',
          op_use   = '{$_POST['op_use'][$j]}',
          manage_code = '{$_POST['manage_code'][$j]}'
          where mb_id = '{$member['mb_id']}' ";
  $result = sql_query($sql);
}

위와 같은 형태로 post 값을 받아오면서 $i 값만큼 UPDATE 하게 해놨습니다.

($i 값은 마찬가지로 post로 넘겨받아온 값입니다)

 

일종의 재고관리를 떠올리시면 되는데, 

이미 입력되어 있는 재고관리의 여러가지 항목들을 for문으로 쿼리돌려서 쭉 뽑아온 뒤

나열된 각 항목들을 수정한 후 submit 하면 UPDATE 하는 형태라고 보시면 됩니다.

 

그런데 위 코드를 실행하면 제대로 값이 들어가질 않습니다.

print_r 로 배열값이 잘 넘어오는지 뽑아봤을 때는 문제없이 전달받는 것으로 출력이 되는데

순차적으로 한 레코드씩 UPDATE 해야되는 상황에서 제대로 UPDATE가 되지 않고

공백으로 값이 들어가네요.

 

쿼리문에 무슨 문제가 있는걸까요..

고수님들의 명쾌한 해답을 기다리겠습니다.

 

질문 읽어주셔서 감사합니다.

 

 

이 질문에 댓글 쓰기 :

답변 1

01

for ($j = 0; $j <= $row; $j++) {

02

  $sql = " update company_item_option_temp set

03

 

04

          value_1  = '{$_POST['value_1'][$j]}',

05

          value_2  = '{$_POST['value_2'][$j]}',

06

          price    = '{$_POST['price'][$j]}',

07

          quantity = '{$_POST['quantity'][$j]}',

08

          status   = '{$_POST['status'][$j]}',

09

          op_use   = '{$_POST['op_use'][$j]}',

10

          manage_code = '{$_POST['manage_code'][$j]}'

11

          where mb_id = '{$member['mb_id']}' ";

12

  $result = sql_query($sql);

13

}

답변을 작성하시기 전에 로그인 해주세요.
전체 69
QA 내용 검색
filter #php7 ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT