mysqliquery上的PHP MYSQL INT 0

时间:2018-10-24 20:09:29

标签: php mysql

我是php和mysql的新学生。我正在上课时做一个自愿的小游戏。但是我不明白为什么在执行mysqli查询时,如果数据库分配了500,它会返回一个int 0。游戏由一个用户组成,该用户下注一定数量的帐户硬币,然后骰子决定您是否赢,输1,2,3输,4,5,6赢。我在这里发布错误或任何错误。

include('conexion.php');

include('session.php');

$usuario=$_SESSION["username"];
$apuesta =$_POST["apuesta"];
$coins= "SELECT coins FROM `users` WHERE `usuario` = \"$usuario\"";

if (mysqli_query($conn, $coins)){
    echo "<br>";
    echo "hola";
    echo "<br>";
    var_dump($coins);
    echo "<br>";
    $coins2 = (int)$coins;
    var_dump($coins2);
    echo "<br>";
    echo "<br>";
    var_dump($coins2);
    echo "<br>";
    if ($apuesta>=$coins2) {
        echo "No tienes suficiente saldo";
        echo "<br>";
    }else {
        $dado = rand(1,6);
        if ($dado >3) {
            $apuesta = $coins2 + $apuesta;
            $cambiocartera = "UPDATE `users` SET `coins` = $apuesta WHERE `users`.`usuario` = '$usuario'";
            echo "<br>";
            echo "<h1>Ganaste = $dado";
            header( "refresh:3;url=dashboard.php");
        }
        elseif ($dado<4) {
            $apuesta = $coins2-$apuesta;
            $cambiocartera = "UPDATE `users` SET `coins` = $apuesta WHERE `users`.`usuario` = '$usuario'";
            echo "<br>";
            echo "<h1>Perdiste = $dado</h1>";
            header( "refresh:3;url=dashboard.php" );
        }
    }
}else {
    echo"error";
}

mysql database of users and coins

我关于0整数的浏览器消息,我不明白为什么。

1 个答案:

答案 0 :(得分:0)

$coins是包含查询的字符串,而不是您从表中检索的列。将字符串转换为数字时,如果开头没有数字,则它将返回0

您需要将mysqli_query()的结果分配给变量,然后在该变量上调用提取函数。

if ($result = mysqli_query($conn, $coins)) {
    $row = mysqli_fetch_assoc($result);
    $num_coins = $row['coins'];
    var_dump($num_coins);