2012-10-23 88 views
0

我試圖把使用循環語句名到變量值的不確定量:這段php代碼有什麼問題?

while ($row = mysql_fetch_row($resultdq2)) 
    { 
     $name[$i] = $row[2]; 
     $parent_ID = $row[1]; 
     $i++; 
    } 

那麼我嘗試使用下面的結構呼應的名稱/

$x = 0; 
while (isset ($name[$x])) 
echo $name[$x]; 
$x++; 

唯一的問題是,這第二個循環結構凍結我的電腦onload,因此我假設它無限循環。

它爲什麼這樣做?假設$x$i是相同的值(即7),那麼$name[$x]name[$i]應該是等價的,那是不正確的?

然後一次我的$name[$x]條件在我的第二個循環中傳遞了賦值的變量點,不應該循環終止?

是否有可能對於循環語句條件,它使用全局變量聲明$x = 0而不是內部$x值來評估條件是否被滿足,因此該語句總是正確的?

什麼問題,我該如何糾正它?

+4

'mysql_ *'氣餒,總有一天它會被廢棄 – Abubakkar

+0

@Abu誰表示,棄用? –

+0

這段代碼的問題在於它沒有使用'foreach'。 – Jon

回答

8

也許增加'{'和'}'增加計數器?

while (isset ($name[$x])) { 
    echo $name[$x]; 
    $x++; 
} 

更好地利用foreach,加is_array檢查。寫好代碼!

+0

+1但爲什麼「可能」:) – anubhava

+0

令人難以置信。絕對令人難以置信。我已經排查了一個小時,並查看了可能的最基本的事情。我開始關注dreamweaver故障和php全局vs局部變量優先級,在評估while語句時,我甚至沒有注意到mising括號......我想我真的需要備用的眼睛......非常感謝! – user1299028

3

只有echo $name[$x];在while while循環中。它應該是:

$x = 0; 
while (isset ($name[$x])) 
{ 
    echo $name[$x]; 
    $x++; 
}