1

好的,对于基本大纲,我正在尝试根据代码的结果更新 mySQL 数据库中的列。

基本上它是掷骰子,如果你击败了房子,它会增加你的 5,如果你输给房子,它会减少 5。这是出于我自己的教育目的,不会公开使用。

不工作的部分是 mysq_query("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>
4

2 回答 2

1

你不需要'周围$coins。那些指定输入是 a CHAR,所以 MySQL 可能试图插入 aCHAR并拒绝,因为它是一个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)。

于 2013-04-21T20:58:09.320 回答
1

'在周围加上a $user_id,它可能是一个字符串。删除引号告诉 MySQL 它是一个整数。

于 2013-04-21T21:06:59.443 回答