for문 오류 관련
본문
for문 안에서 3개 정도 출력 되게 할려고 하는데 무한 루프 걸리는데 어디가 잘못된건지요..
$i 로 추가 하는데 무한루프 걸려서요...
<?php
for($i=1; $i<=3; $i++) {
?>
<tr>
<th scope="row">이미지<?php echo $i ?></th>
<td>
<input type="file" name="mb_bn_bimg<?php echo $i ?>">
<?php
$mb_bimg_str.$i = "";
$mb_bimg.$i = G5_DATA_PATH."/banner-main/{$bn['bn_id']}_bg{$i}";
if (file_exists($mb_bimg.$i) && $bn['bn_id'].'_bg'.$i) {
$size = @getimagesize($mb_bimg.$i);
if($size[0] && $size[0] > 750)
$width = 750;
else
$width = $size[0];
echo '<input type="checkbox" name="mb_bn_bimg'.$i.'_del" value="1" id="mb_bn_bimg'.$i.'_del"> <label for="mb_bn_bimg'.$i.'_del">삭제</label>';
$mb_bimg_str.$i = '<img src="'.G5_DATA_URL.'/banner-main/'.$bn['bn_id'].'_bg'.$i.'" width="'.$width.'">';
}
if ($mb_bimg_str.$i) {
echo '<div class="banner_or_img">';
echo $mb_bimg_str.$i;
echo '</div>';
}
?>
<table class="tbl">
<tr>
<th>상품명</th>
<td><input type="text" name="bimg<?php echo $i ?>_name" value="<?php echo $bn['bimg'.$i.'_name'] ?>" class="frm_input name"></td>
<th>링크주소</th>
<td><input type="text" name="bimg<?php echo $i ?>_url" value="<?php echo $bn['bimg'.$i.'_url'] ?>" class="frm_input link"></td>
<th>상단에서 위치(px)</th>
<td><input type="text" name="bimg<?php echo $i ?>_position_top" value="<?php echo $bn['bimg'.$i.'_position_top'] ?>" class="frm_input center">px</td>
<th>우측에서 위치(px)</th>
<td><input type="text" name="bimg<?php echo $i ?>_position_right" value="<?php echo $bn['bimg'.$i.'_position_right'] ?>" class="frm_input center">px</td>
</tr>
</table>
</td>
</tr>
<? } ?>
이 부분 삭제하면 루프 안걸리는거 보면.. 이 부분에서 먼가 잘못된거 같아요
<?php
$mb_bimg_str.$i = "";
$mb_bimg.$i = G5_DATA_PATH."/banner-main/{$bn['bn_id']}_bg{$i}";
if (file_exists($mb_bimg.$i) && $bn['bn_id'].'_bg'.$i) {
$size = @getimagesize($mb_bimg.$i);
if($size[0] && $size[0] > 750)
$width = 750;
else
$width = $size[0];
echo '<input type="checkbox" name="mb_bn_bimg'.$i.'_del" value="1" id="mb_bn_bimg'.$i.'_del"> <label for="mb_bn_bimg'.$i.'_del">삭제</label>';
$mb_bimg_str.$i = '<img src="'.G5_DATA_URL.'/banner-main/'.$bn['bn_id'].'_bg'.$i.'" width="'.$width.'">';
}
if ($mb_bimg_str.$i) {
echo '<div class="banner_or_img">';
echo $mb_bimg_str.$i;
echo '</div>';
}
?>
답변 2
무한 루프에 빠진 다는 것은 $i 값이 변경 되어버린다는 거잖아요
이미지1 ~~~ 이미지2~~~가 나와야 하는데 두번째 부터 이미지 문구 다음에 무엇이 나오는지 보세요
이 부분이 문제네요
$mb_bimg_str.$i = ""; <----?? 이게 뭐하는 거죠?
$mb_bimg.$i = G5_DATA_PATH~~~~ <-----?? 이 부분도 마찬가지
$mb_bimg1, $mb_bimg2 라는 변수를 만든다고 저렇게 한 것 같은데
어떻게 저렇게 만들어 지겠어요? $mb_bimg는 문자 그대로 나오록 $i 에는 1,2,3이 차례로 들어가겠어요?
$mb_bimg[$i] <---위 소스 외 다른 곳에서 사용한다면 배열로 만들든지 아니라면 .$i 없애버리세요
$mb_bimg_str.$i = '<img src~~~ <----- 이부분도 마찬가지
저렇게 변수를 만드는 방법은 아래와 같은데 위 소스에서는 이렇게 사용할 수 잇는 것도 아닙니다
$tmp='mb_bimg'.$i;
$$tmp = '1234567';
echo $mb_bimg1;
name="mb_bn_bimg' 이것을 name="mb_bn_bimg"'
id 부분도 마찬가지로 처리해야 되겠네요.
답변을 작성하시기 전에 로그인 해주세요.