write_update 질문드립니다. 채택완료
</p>
<p>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);</p>
<p>
업데이트를 하기전에 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 <--- 사용하지도 않는 값이네요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
</p>
<pre>
<code>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;
};</code></pre>
<p><code>for($i=0; $i < count($stock_list);$i++){</code></p>
<p><code> $wr_5 = implode('@@', $stock_list[$i]);</code></p>
<p><code>}</code></p>
<p>
이런식으로 배열수만큼 반복 하시면서 wr_5 변수안에 값을 처리하셔야 합니다
배열로 처리하시는게 포인트 입니다
댓글을 작성하려면 로그인이 필요합니다.
. 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;
이렇게 하면 실행된 쿼리들이 한꺼번에 담겨서 넘어갑니다
답변에 대한 댓글 1개
이걸 배열로 담을려면 어떻게 해야 하나요?
수정시 카운트도 세야 하고... 이것저것 할게 있어서 수정시 실행을 시켜야 합니다....
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인