好的,作为一个基本的大纲,我试图根据代码的结果更新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
更好)。