데이터베이스 업데이트 문의

데이터베이스 업데이트 문의

QA

데이터베이스 업데이트 문의

본문


<div>
    <section id="anc_sodr_memo">
        <h2 class="h2_frm"></h2>
        <?php echo $pg_anchor; ?>
        
        <form name="frmorderform2" action="./order_mb_memoform_update.php" method="post" onsubmit="return form_submit(this);">
        <input type="hidden" name="od_id" value="<?php echo $od_id; ?>">
        <input type="hidden" name="index_no" value="<?php echo $index_no; ?>">   
        <input type="hidden" name="mb_memo" value="<?php echo $mb_memo; ?>">      
        <input type="hidden" name="mb_memo_update" value="<?php echo $mb_memo_update; ?>">     
        <input type="hidden" name="sort1" value="<?php echo $sort1; ?>">
        <input type="hidden" name="sort2" value="<?php echo $sort2; ?>">
        <input type="hidden" name="sel_field" value="<?php echo $sel_field; ?>">
        <input type="hidden" name="search" value="<?php echo $search; ?>">
        <input type="hidden" name="page" value="<?php echo $page; ?>">
        <input type="hidden" name="mod_type" value="memo">
        <input type="hidden" name="w" value="<?php echo $w; ?>">
 
        <?php
        // 상품목록
        $sql3 = " select * from {$g5['g5_shop_mb_memo_table']} where od_id = '$od_id' ";
        $memo_result =sql_query($sql3) ;
        ?>
 
        <section id="anc_sodr_status_mod" >
            <div class="tbl_head01 tbl_wrap">
                <table>
                <thead>
                <tr>
                    <th scope="col">분류</th>
                    <th scope="col">작성자</th>
                    <th scope="col">메모 내용</th>
                    <th scope="col">작성/수정일시</th>
                    <th scope="col">수정</th>
                    <th scope="col">삭제</th>
                </tr>
                </thead>
                <tbody>
                <?php for($j=0; $result_claim=sql_fetch_array($memo_result); $j++) {?>
                <tr>
                <?php if($result_claim['mb_id'] == ''){?>
                    <td width="100">요청사항</td> <?php }
                    else {?> <td width="100">지시사항</td> <?php } ?>
                    <td width="100"><?php echo $result_claim['mb_id']; ?></td>
                        <td width="500"><input type="text" name="mb_memo_update" value="<?php echo get_text($result_claim['mb_memo']); ?>" id="mb_memo_update" class="frm_input"></td>
                        <td width="200">
                            작성 : <?php echo substr($result_claim['mb_memo_time'],0,16); ?> (<?php echo get_yoil($result_claim['mb_memo_time']); ?>)<br>
                            수정 : <font color="red"><?php echo substr($result_claim['mb_memo_update_time'],0,16); ?> (<?php echo get_yoil($result_claim['mb_memo_update_time']); ?>)</font>
                        </td>
                        <td width="70">
                            <a href="./order_mb_memoform_update.php?w=u&od_id=<?php echo $result_claim['od_id']; ?>&index_no=<?php echo $result_claim['index_no']; ?>" class="mng_mod btn btn_02">수정</a>
                        </td>
                        <td width="70">                    
                            <a href="./order_mb_memoform_update.php?w=d&od_id=<?php echo $result_claim['od_id']; ?>&index_no=<?php echo $result_claim['index_no']; ?>" class="mng_mod btn btn_01"><span class="sound_only"><?php echo $row['od_id']; ?> </span>삭제</a>
                        </td>
                    </tr>    
                        
                    <?php } ?>
                </tbody>
                </table>
            </div>
        <section>
 
        <div class="compare_wrap">
            <section id="anc_sodr_detail_mod">
                <div class="tbl_frm01">
                    <table>
                    <colgroup>
                        <col class="grid_3">
                        <col>
                    </colgroup>
                    <tbody>
 
                    <tr>
                        <th scope="row"><label for="mb_memo">메모내용</label></th>
                        <td>
                            <textarea name="mb_memo" id="mb_memo" rows="2"><?php echo html_purifier(stripslashes($result_claim['mb_memo'])); ?></textarea>
                        </td>
                    </tr>
                    </tbody>
                    </table>
                </div>
            </section>
            <div class="btn_confirm01 btn_confirm">
                <input type="submit" value="메모 추가" class="btn_submit btn">
                <a href="./orderlist.php?<?php echo $qstr; ?>" class="btn btn_02">이전페이지로 이동</a>
            </div>
        </div>
        </form>
    </section>
 
 

 

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

 

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

도움 부탁드립니다.

 

 


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


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

에서


 

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

로 바꿔보세요

 

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

 

'{$_POST['od_id']}'로 했을 때도 안되나요?

'{$_POST['od_id']}'는 아무것도 변화가 없으며, '$od_id'로 하면 업데이트 시간은 반영이 됩니다.
Input값중 mb_memo_update로 넘기는 값만 db에 반영이 되면 해결될듯합니다. 도움 부탁드립니다.

구조를 잘 모르겠는데 mb_memo_update 들어 있는 곳 보면 클레임 mb_id가 비어 있을 때 실행한다고 조건문이 있는데 업데이트인데 비어 있을 수가 있나요?

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

그리고 print_r2로 포스트가 맞게 들어오는지 확인해보세요

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

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

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

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

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

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 123,524 | RSS
QA 내용 검색

회원로그인

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