好的,作为一个基本的大纲,我试图根据代码的结果更新mysql数据库中的一个列。
基本上是掷骰子,如果你赢了房子,你的智力会增加5,如果你输了房子,智力会减少5。这是为了我自己的教育目的,不会公开使用。
不起作用的部分是mysq_查询(“update”),有赢也有输。

if (isset($_POST['roll'])) {
    $rand = rand(1, 6);
    $rand1 = rand(1, 6);
    $rand2 = rand(1, 6);
    $rand3 = rand(1, 6);
    $score = $rand + $rand1;
    $score1 = $rand2 + $rand3;

    echo 'You rolled a '.$rand.' and a '.$rand1.' Totalling '.$score;?><br><?
    echo 'Your opponent rolled a '.$rand2.' and a '.$rand3.' Totalling '.$score1;?><br><br><?
    if ($score > $score1){
        echo 'Win';
        $coins = $user_data['coins'] + 5;
        mysql_query("UPDATE `users` SET `coins` = '$coins' WHERE `user_id` = $user_id");
    } else {
        echo 'Loose';
        $coins1 = $user_data['coins'] - 5;
        mysql_query("UPDATE `users` SET `coins` = '$coins1' WHERE `user_id` = $user_id");
    }
}
?>
<form action="playdice.php" method="POST">
    <input type="submit" name="roll" value="Roll Dice.">
</form>

最佳答案

你不需要'周围的$coins。它们指定输入是一个CHAR,因此mysql可能试图插入一个CHAR并拒绝,因为它是一个INT列。
您似乎还没有定义要查询的连接。

$mysqli = new mysqli("localhost", "user", "password", "database");
...
if ($score > $score1){
    echo "Win";
    $coins = $user_data['coins'] + 5;
    $mysqli->query("UPDATE `users` SET `coins` = $coins WHERE `user_id` = $user_id");
} else {
    echo "Lose";
    $coins = $user_data['coins'] - 5;
    $mysqli->query("UPDATE `users` SET `coins` = $coins WHERE `user_id` = $user_id");
}

这应该管用。(很抱歉将您从已弃用的mysql语法中切换,但我真的不记得了,如果您正在学习使用mysqli更好)。

07-28 02:33
查看更多