2010-11-25 8 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文の外でどこか$ Iをインクリメントする必要がありますwhileループ

3

で$ Iを変更することはありません。

2

あなたはそれが常に私が } $ I ++そうに見える最後の2 } } 間++ $追加 を渡します一度、その真の場合、私各ループのためか、他$インクリメントする必要があります。 }

関連する問題