我正在編程一個隨機事件系統,發生在用戶登錄時,我把下面的一段代碼放到我的包含文件中。爲什麼我的if語句會忽略我的條件?
$tehchance = mt_rand(1,15);
if ($tehchance == "1"){
$thewin = 10;
mysql_query("UPDATE members SET Points = Points + $thewin WHERE Handle = '$members[Handle]'");
}
我也有這個另一事件:
if ($tehchance == "2"){
$thekhwin = 5;
$thexpwin = 10;
mysql_query("UPDATE members SET Points = Points - $thekhwin WHERE Handle = '$members[Handle]'");
mysql_query("UPDATE members SET XP = XP + $thexpwin WHERE Handle = '$members[Handle]'");
}
的代碼將工作,但有時當$ tehchance大於或者等於1或2別的東西等,這將不理會我的條件,更新成員表而不滿足if語句。從測試中,它會隨機添加點或減去點。我從$ tehchance打印了隨機數,即使它不等於1或2,它仍然會添加點。然後有時對成員表不做任何操作。真的很困惑。
任何想法?
首先,您將隨機生成的整數與字符串值進行比較。 – js1568
...然後有可能是別的錯誤。 – 2011-08-30 18:33:01
在你的條件塊中添加一個調試回聲,比如'if($ tehchance == 2){echo'it is 2';/*其餘代碼... * /}'。更可能的是,您不止一次修改'$ tehchance',不止一次運行您的腳本,或者在其他地方進行無關更新。 – erisco