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

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

QA

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

답변 2

본문


$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; 는 배열이 아닙니다. 

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

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



$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());
	
}


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


$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());
 }

$week = 4; 

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

예를 들면 아래와 같이 하셔야 합니다
$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());
 }
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 1,537
© SIRSOFT
현재 페이지 제일 처음으로