write_update 질문드립니다.

write_update 질문드립니다.

QA

write_update 질문드립니다.

본문


for ($i=0; $i<$count; $i++){
    $code = $_POST['wr_1'][$i]; 
    $jego_num = $_POST['wr_2'][$i];
    $sql= sql_fetch( " update $target_table set $wr_2 = $areas where wr_4= '$code'") ;
    $sql_old = " update $target_table set $wr_2 = $areas where wr_4= '$code' ";
    $stock_list[] = $sql_old;
};
$wr_5 = implode('@@', $stock_list);

 

업데이트를 하기전에 sql 구문을 한번 돌리고

이걸 wr_5에 저장을 할려고 합니다.

 

여러개의 값이 있어서 배열로 담아 implode시키면 될줄 알았는데

$wr_5 = implode('@@', $stock_list);

이걸 작성하면 다른 필드값이 업데이트가 되질 않습니다.

전부 빈 여백으로 나옵니다.

 

저 부분을 막으면 이상없이 잘 되구요..

 

어떻게 수정을 해야 하는지 알려주시면 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 3

 우선 sql_fetch --> sql_query로 바꾸세요

update 쿼리가 실행은 되지만 sql_fetch는 레코드 하나를 select 하기 위한 함수 입니다

----------------------------------------------

코드에서 $wr_2 = $areas <--$wr_2는 무엇을 하기 위함인가요?

$sql= sql_fetch( " update $target_table set $wr_2 = $areas where wr_4= '$code'")

 

 $wr_5 = implode('@@', $stock_list); <--- wr_5에 쿼리문을 저장하는 의도가 무엇인가요?

필요하다면  그냥  $areas 과 $code 값을 한쌍으로 해서 값만 저장해두면 될 것을....

$old_value=array(); <---- for문 위쪽에 추가 한 후

$old_value[] = $areas .'#'. $code;

 for문 끝나면

 $wr_5 = implode('@', $old_value );

------------------------------------------------------

$jego_num <--- 사용하지도 않는 값이네요

 

 

 

stock_list 가 배열이니까

   foreach 로 반복문으로 배열안의 값을 가져오면서 implode 하셔야 합니다

 

근데 이걸 이렇게 하는 이유를 모르겠어요 실행 한 쿼리 를 wr_5 안에 넣으려고 하시는건가요 ?

 

그럼 

 

$sql_old  = "";

for ($i=0; $i<$count; $i++){
    $code = $_POST['wr_1'][$i]; 
    $jego_num = $_POST['wr_2'][$i];
    $sql= sql_fetch( " update $target_table set $wr_2 = $areas where wr_4= '$code'") ;
    $sql_old .= " update $target_table set $wr_2 = $areas where wr_4= '$code' ";

};

 

$wr_5 = $sql_old;

 

이렇게 하면 실행된 쿼리들이 한꺼번에 담겨서 넘어갑니다



for ($i=0; $i<$count; $i++){
    $code = $_POST['wr_1'][$i]; 
    $jego_num = $_POST['wr_2'][$i];
    $sql= sql_fetch( " update $target_table set $wr_2 = $areas where wr_4= '$code'") ;
    $sql_old = " update $target_table set $wr_2 = $areas where wr_4= '$code' ";
    $stock_list[] = $sql_old;
};

for($i=0; $i < count($stock_list);$i++){
  $wr_5 = implode('@@', $stock_list[$i]);
}

 

이런식으로 배열수만큼 반복 하시면서 wr_5 변수안에 값을 처리하셔야 합니다

배열로 처리하시는게 포인트 입니다

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

회원로그인

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