테스트 사이트 - 개발 중인 베타 버전입니다

write_update 질문드립니다. 채택완료

예서제이 3년 전 조회 1,214

</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개

채택된 답변
+20 포인트
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개

예서제이
3년 전
답변 감사합니다.

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

</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개

예서제이
3년 전
감사합니다.
이걸 배열로 담을려면 어떻게 해야 하나요?
수정시 카운트도 세야 하고... 이것저것 할게 있어서 수정시 실행을 시켜야 합니다....

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

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

로그인