0

我是 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数据库

我的浏览器消息关于 0 上的 int 我不明白为什么。

4

1 回答 1

0

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

您需要将结果分配给mysqli_query()变量,然后对其调用 fetch 函数。

if ($result = mysqli_query($conn, $coins)) {
    $row = mysqli_fetch_assoc($result);
    $num_coins = $row['coins'];
    var_dump($num_coins);
于 2018-10-24T20:31:42.273 回答