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 변수안에 값을 처리하셔야 합니다
배열로 처리하시는게 포인트 입니다
!-->