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

데이터베이스 업데이트 문의 채택완료

Copy

위 소스처럼 주문내역수정 화면에서 고객 불만에 대하여 내부적으로 지시/요청 사항을 구현하려고 하는데,

아래 업데이트 파일을 통해서 내용이 insert, delete는 잘 되는데 update만 안되는 이유를 잘 모르겠습니다.

도움 부탁드립니다.

Copy


if ($w == 'u') // 업데이트

{

 

        sql_query(" UPDATE {$g5['g5_shop_mb_memo_table']} 

                set mb_id       = '{$member['mb_id']}',

                    mb_memo    = '{$_POST['mb_memo_update']}',

                    mb_memo_update_time    = '".G5_TIME_YMDHIS."' 

                where od_id = $od_id  ");

 

                   

 

}



 

else if ($w == 'd') // 삭제

{

    if (!$od_id)

        alert('존재하지 않는 데이터 입니다.');

 

    sql_query(" DELETE from {$g5['g5_shop_mb_memo_table']} where index_no = '$index_no' ");

 

}

else // 등록

{

    $sql = " INSERT {$g5['g5_shop_mb_memo_table']}

                set od_id    = '{$_POST['od_id']}',

                    mb_id       = '{$member['mb_id']}',

                    mb_memo    = '{$_POST['mb_memo']}',

                    mb_memo_time    = '".G5_TIME_YMDHIS."' "; 

    sql_query($sql);

}

답변 3개

채택된 답변
+20 포인트
Copy
sql_query(" UPDATE {$g5['g5_shop_mb_memo_table']} 
                set mb_id       = '{$member['mb_id']}',
                    mb_memo    = '{$_POST['mb_memo_update']}',
                    mb_memo_update_time    = '".G5_TIME_YMDHIS."' 
                where od_id = $od_id  ");

에서

Copy


 


sql_query(" UPDATE {$g5['g5_shop_mb_memo_table']} 
                set mb_id       = '{$member['mb_id']}',
                    mb_memo    = '{$_POST['mb_memo_update']}',
                    mb_memo_update_time    = '".G5_TIME_YMDHIS."' 
                where od_id = '$od_id'  ");

로 바꿔보세요

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

답변에 대한 댓글 1개

이부분은 블랑숑님께서 확인해주셔서 반영했던거구요. mb_memo_update 값이 빈값이라는것이 문제입니다.

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

답을 찾았네요. 왜 insert와 delete만 되고 update가 안되었는지요

힌트1. 폼을 넣었으나 폼을 사용하지않았다.

힌트2. 중복된 input name을 설정했다.

힌트3. 중복된 input은 맨마지막값만 넘어간다.

힌트4. 힌트3에 더불러 hidden을 사용하면 된다.

힌트5. 데이터를 넘길때 get으로 넘겼다.

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

답변에 대한 댓글 1개

ㅠ 아직 해결을 못하고 있는 문제입니다. 메모 추가는 textarea에서 넘기고 그 추가된 값들을 별도 테이블에서 끌어와서 테이블에 출력하고 그 테이블 안의 출력값에 input을 넣어서 그 값을 업데이트 하려는 의도인데, 어디서인가 꼬인건지....수정기능만 안되는겁니다.

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

where 부분 '$od_id' 로 바꿔서 해보시구요

'{$_POST['od_id']}'로 했을 때도 안되나요?
로그인 후 평가할 수 있습니다

답변에 대한 댓글 7개

'{$_POST['od_id']}'는 아무것도 변화가 없으며, '$od_id'로 하면 업데이트 시간은 반영이 됩니다.
Input값중 mb_memo_update로 넘기는 값만 db에 반영이 되면 해결될듯합니다. 도움 부탁드립니다.
구조를 잘 모르겠는데 mb_memo_update 들어 있는 곳 보면 클레임 mb_id가 비어 있을 때 실행한다고 조건문이 있는데 업데이트인데 비어 있을 수가 있나요?

지금 업데이트가 잘 되는 필드(시간,id)는 사실상 저 조건문이랑 상관없는 부분이라 저 조건문 없애거나 다른 조건으로 테스트 해보셔야 할 듯

그리고 print_r2로 포스트가 맞게 들어오는지 확인해보세요
아 이부분은 제가 질문하면서 지웠습니다. 멤버 아이디에 담당자의 특정아이디가 있습니다.
update 파일 상단 소스 시작부분 위에 print_r2($_POST); exit; 하셔서 포스트 값이 잘 넘어오나 확인해보세요
Array
(
)

이런 결과가 출력되었습니다.
그러면 포스트값이 안넘어오는거에요

뭔가 앞에서 문제가 있는겁니다
짧은 지식으로 소스 응용해서 구현하려니 작은 에러에도 답답함이 좀 있네요 ㅠ.
해결은 못했지만 성의있는 도움 감사드립니다.

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

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

로그인
🐛 버그신고