2010-11-25 3 views
0

if 문을 포함하는 while 루프가 있습니다. while 루프는 잘 작동하지만 while 루프를 통과 한 각 if 문과 if 문을 true로 반환하면 스크립트가 멈추고 최대 실행 시간 오류가 30 초가됩니다.문이 끊어진 경우

무한 루프 또는 무엇을 생성하는지 잘 모르겠습니다. 누구든지 문제를 발견 할 수 있습니까?

$size = count($_POST['itemname']); 

// start a loop in order to update each record 
$i = 0; 
while ($i < $size) { 
// define each variable 
$itemname= $_POST['itemname'][$i]; 
$id = $_POST["id"][$i]; 


if(preg_match('/[A-Za-z]/',$itemname)) { 

echo("has words"); 

} else { 

//update code here 



} 
} 
+3

'foreach' 루프를 사용하면 훨씬 간단해질 수 있습니다. – deceze

답변

4

당신은 $i을 증가하지, 그건 당신이 $i을 증가 결코 항상 < $size

while ($i < $size) { // changed this to > 
    // define each variable 
    $itemname= $_POST['itemname'][$i]; 
    $id = $_POST["id"][$i]; 
    $i++; // increment $i 
3

될 것으로 매달려있는 것이다. for 루프를 대신 사용해보십시오. 그들은 조금 더 명백합니다.

2

당신은 당신은 if 문 밖에서 어딘가에 $ 내가 증가하는 데 필요한 while 루프

3

에 $ 내가 변화하지 않았다.

2

당신은 항상 내가 } $ 내가 ++ 그렇게 보이는 지난 2 } } 사이 ++ $ 추가 를 전달합니다 한번 진정한 있다면 각 루프 또는 다른 $ 증가 할 수있다; }

관련 문제