我试图在我的游戏项目上实施银行系统。我遇到elseif
的问题。
我有这段代码:
<?php
session_start();
include ('include/dbconnect.php');
$res = mysql_query("SELECT * FROM users WHERE user_id=".$_SESSION['user']);
$userRow = mysql_fetch_array($res);
$in = $_POST['entrar'];
$pocketremain = ($userRow['money'] - $in);
$bankremain = ($userRow['bank'] + $in);
if ($in < $userRow['money']) {
// QUERIES
mysql_query("UPDATE users SET money ='".$pocketremain."' WHERE user_id ='".$_SESSION['user']."'");
mysql_query("UPDATE users SET bank ='".$bankremain."' WHERE user_id ='".$_SESSION['user']."'");
$string = "<br><font size='2'><font color='green'>SUCCESS !! </font><br>You deposited $in$.<br>You now have $bankremain$ in the Bank<br>and $pocketremain$ in your Pocket.</font>";
} elseif ($in <= '0') { // FIM DE QUERIES
$string = "<br><font size='2'><font color='red'>FAIL !!</font> <br>You cant deposit imaginary money!</font>";
} else {
$string = "<br><font size='2'><font color='red'>FAIL !!</font> <br>Your values are Wrong!</font>";
}
?>
我仍然可以在银行取消零钱。 elseif
应该声明$string
如果设置为0作为值。
如果你能为我杀了这个我会很感激,我一直在努力解决这个问题几个小时。
答案 0 :(得分:1)
使用 elseif($ in&lt; =&#39; 0&#39;)而不是 elseif($ in =&#39; 0&#39;)
您收到错误是因为当您使用($ in =&#39; 0&#39;)时,您在$ in中分配了一个值( 0 )。 即可。要进行比较,您应该使用双 == 。
== 将检查$ val是否等于0
&lt; = 将检查$ val是否等于或小于0
= 将0分配给val
答案 1 :(得分:0)
您需要在if
语句中添加一个条件。你的代码应该是
if ($in < $userRow['money'] && $in > 0) {
// QUERIES
mysql_query("UPDATE users SET money ='".$pocketremain."' WHERE user_id ='".$_SESSION['user']."'");
mysql_query("UPDATE users SET bank ='".$bankremain."' WHERE user_id ='".$_SESSION['user']."'");
$string = "<br><font size='2'><font color='green'>SUCCESS !! </font><br>You deposited $in$.<br>You now have $bankremain$ in the Bank<br>and $pocketremain$ in your Pocket.</font>";
}
// FIM DE QUERIES
elseif ($in <= '0') {
$string = "<br><font size='2'><font color='red'>FAIL !!</font> <br>You cant deposit imaginary money!</font>";
}
else {
$string = "<br><font size='2'><font color='red'>FAIL !!</font> <br>Your values are Wrong!</font>";
}
因为当您的$in
为0 or less than 0
时,您的第一个if statement
为true
,所以它没有进入您的第二个elseif
声明。< / p>