我正在编程一个随机事件系统,发生在用户登录时,我把下面的一段代码放到我的包含文件中。为什么我的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