개발 Q&A

제목 for문을 사용하여 db에 데이터를 넣을려고 하는데 한번만 db에 데이터가 들어간 후 for문을 나와버리네요;
카테고리 PHP
글쓴이 정수리 작성시각 2016/11/16 14:18:20
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 12747   RSS
$sql = 'select jds_gigwan.gg_pk from jds_pact inner join jds_gigwan on jds_pact.gg_pk=jds_gigwan.gg_pk where pg_pk=?';

				$query =  $this->db->query($sql, $data['pg_pk']);
				$result =  $query->result();

				
				$sql = 'insert into jds_pinfo(gg_pk, pg_pk, pi_vs, pi_info) values(?, ?, ?, ?)';
				
				echo count($result);
			
				for($i=0; $i<count($result); $i++){	
				
				$result =  $this->db->query($sql, array($result[$i]->gg_pk, $data['pg_pk'], $data['up_version'], $data['up_ct']));
				echo $i;
				}

 

첫번째 selet문을 돌여서 gg_pk의 갯수를 가져 온후에 for문을 사용하여 

 

gg_pk의 갯수만큼 데이터를 넣을려고 합니다;

 

중간 중간 echo문을 통해 확인을 해보았는데

 

for문 이전에 echo count($result)를통해 17개 찍히는것 확인하였습니다

 

그리고 for문 안에 echo $i를 통해 $i가 몇인지 확인해보았는데 0만 찍히고 그다음부터는 안찍히더라구요;;

정상적이라면 count($result)17이니 17찍혀야 되는데 ㅜㅜ

데이터가 1번만 찍히고 for문을 나오는것 같습니다; for문 안에 return도 없는데 말이죠

다른 코드에서 for문을 통해 데이터를 넣었을때는 잘들어갔는데 새로 만드는 페이지에서는 안되네요;;

무엇이 원인인지 알수있을까요??;

 다음글 카드결제기능이 아닌 자동이체 모듈을 구현할수 있나요? (2)
 이전글 RAD Studio XE7 사용하 실줄 아시는분 (2)

댓글

배강민 / 2016/11/16 14:45:15 / 추천 0

해보진 않았지만, $result 기준으로 for문을 돌면서 그안에서 $result를 바꿔버리고 있어서인듯합니다.

for 안의 $result = 를 $result2 = 등 다른 이름으로 해보시면 될듯 합니다. 

즉, 첫 루프돌고나서 $result가 insert문의 결과로 재세팅되버리니 루프돌게 없어서 끝나버리는 듯 합니다.

정수리 / 2016/11/16 15:26:58 / 추천 0

@배강민

감사합니다 말씀하신대로 $result= 를 바꿔서 해보니 정상적으로 잘 들어갑니다.

감사합니다.