2026, 새로운 도약을 시작합니다.

배열을 DB에 UPDATE 하려고 합니다 채택완료

안녕하세요.

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

A.php

B.php

두 개의 파일이 있고

A.php에는

Copy

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

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

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

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

B.php 에서는

Copy
for ($j = 0; $j 

위와 같은 형태로 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

}

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

답변에 대한 댓글 1개

답변 감사드립니다.

알려주신대로 적용했을 때에도 마찬가지네요 ㅠ
그런데 위에 $row 는 어디에서 온 건지 궁금하네요.

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

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

로그인
🐛 버그신고