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

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

QA

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

본문


$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());
 }
답변을 작성하시기 전에 로그인 해주세요.
전체 59,609
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT