我有這個while循環代碼爲PHP編寫,我不知道爲什麼循環不斷重複,所以我把一個櫃檯打破它。PHP雖然循環問題不會覆蓋變量
在調試echo的結果時,看起來我的變量$ loop_userid不會被覆蓋。
Referral is 1021 Referral is 1021 Referral is 1021 Referral is 1021 Referral is 1021 Referral is 1021
我有一個sql記錄列表。帳戶1021,提名爲1000
這樣做的想法是
3 Accounts
1008 > 1021 > 1000
But my loop stuck at 1021
我不知道爲什麼我的$ loop_userid不會與從數據庫中提取出來的新值覆蓋。
從MySQL數據庫中選擇
account_id referral
1000
1008 1021
1021 1000
如果我贊同我的SQL SELECT語句
select * from account where account_id='1008'
select * from account where account_id='1021'
select * from account where account_id='1021'
select * from account where account_id='1021'
select * from account where account_id='1021'
select * from account where account_id='1021'
下面是我的代碼
$payment_owe_loop = "inside";
//initial userid is my own userid
$loop_userid = $UserId;
//用戶ID是1008在這一點上
while($payment_owe_loop=="inside")
{
$sql_select = "select * from account where account_id='$loop_userid'";
$result = mysql_query($query);
//echo $sql_select;
$loop_userid = "";
$count = mysql_num_rows($result);
if($count>0)
{
while($rowINNER = mysql_fetch_array($result))
{
$loop_userid = $rowINNER['referral'];
$my_rebate = $rowINNER['rebate'];
$my_cost = (100 - $my_rebate) * $total_cost * 0.01;
}//end while fetch inner row
}//if there rows return
echo " Referral is " . $loop_userid;
if($count==0)
{
$payment_owe_loop = "outside";
}
if($counter>4)
{
$payment_owe_loop = "outside";
}
$counter++;
unset($rowINNER);
}//end while payment loop
問題解決。我發現,我查詢了錯誤的SQL語句
$sql_select = "select * from account where account_id='$loop_userid'";
$result = mysql_query($query);
它假設爲$ sql_select中,而不是$查詢
由SQL語句所矇蔽,我錯過了檢查變量I鍵在錯誤
'while($ payment_owe_loop ==「inside」)''應該是單個等號。你不應該比較,而是分配哪些是'while',而不是條件語句,就像你爲'while($ rowINNER = mysql_fetch_array($ result))'所做的那樣。 - 'if($ payment_owe_loop ==「inside」){...}'或'while($ payment_owe_loop =「inside」)' – 2014-09-03 18:41:46
嗨Fred,我試圖擺脫while循環payment_owe_loop ==值當我的計數器將變量payment_owe_loop的值更改爲4以外的值時,它有效。當我添加mysql語句echo結果時,我試圖調試一個小時左右,但不知道實際上發生了什麼在我的代碼錯誤,我的loop_userid不會覆蓋,直到引用1000 – user3412075 2014-09-03 18:45:04
@ Fred-ii-沒有... while循環工作的原因是,如果沒有行可以獲取,它返回FALSE它打破循環。只要給定的條件爲TRUE,繼續循環。 – HamHamJ 2014-09-03 18:47:32