미채택 완료

여러개의 값을 update 하고싶은데 마지막 데이터만 들어갑니다..

2017-08-07 (월) 17:31:00 2,272
Copy
$week = 4;for($i=0;$i<count($week);$i++) {   $sql = "update pro_4   set week = '{$week[$i]}',   type = '{$type}',   mon = '{$mon}',   where week = $week";   sql_query($sql) or die (sql_error()); }

이런식으로 구문을 짯는데

마지막 데이터값만 들어가는데.. 혹시 어디가 잘못되었나요ㅜㅜ

|

답변 2개

$week = 4; 

이렇게 하셨으니 항상 week = 4 로 업데이트 되는것이지요

예를 들면 아래와 같이 하셔야 합니다
Copy
$week = Array(1,2,3,4); 
for($i=0;$i<count($week);$i++)
 {
   $sql = "update pro_4
   set week = '".$week[$i]."',   // 이건 where 절에 있는 컬럼인데 업데이트를???
   type = '".$type."',   mon = '".$mon."',   where week = '".$week[$i]."'";   sql_query($sql) or die (sql_error());
 }
2017-08-07 (월) 17:39:33

일단

$week = 4; 는 배열이 아닙니다. 

count()함수는 배열의 수를 세는 함수입니다.

그러므로 무조건 에러납니다 .

Copy
$week = array(1,2,3,4);for($i=0;$i<count($week);$i++){ $sql = "update pro_4 set week = '{$week[$i]}', type = '{$type}', mon = '{$mon}', where week = '{$week[$i]}'"; sql_query($sql) or die (sql_error());	}

변수로 활용하려면 이렇게!

Copy
$week = 4;for($i=0;$i<$week;$i++) {   $sql = "update pro_4   set week = '{$i}',   type = '{$type}',   mon = '{$mon}',   where week = '{$week}'";   sql_query($sql) or die (sql_error()); }

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