elseif($ var =' 0')无效

时间:2015-12-05 07:15:36

标签: php if-statement

我试图在我的游戏项目上实施银行系统。我遇到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作为值。 如果你能为我杀了这个我会很感激,我一直在努力解决这个问题几个小时。

2 个答案:

答案 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>";
    }

因为当您的$in0 or less than 0时,您的第一个if statementtrue,所以它没有进入您的第二个elseif声明。< / p>