我基本上在一个用户反复点击按钮的网站上工作,每次点击都会增加他的分数。我不想在每次点击之间刷新页面,所以我使用的是AJAX。
我目前遇到的问题如下:
当我尝试将我的javascript var
设置为=
<? echo $result['count']; ?>
时,它似乎无效。
我不明白如何正确地将PDO用于UPDATE
MySQL表,并在查询中进行计算,例如$update = $dbh->execute("UPDATE count SET count='$count'+1 WHERE username='$username'");
。这是计算的正确语法,这是在PDO中执行此操作的正确方法吗?
以下是我用于点击系统的测试页面的代码:
<html>
<?php
$hostname = 'localhost';
$username2 = 'refrigerator';
$password = 'xxx';
$dbh = new PDO("mysql:host=$hostname;dbname=refrigerator", $username2, $password);
$username = $_COOKIE["user"];
$rows = $dbh->prepare("SELECT count FROM count WHERE username = '$username'");
$rows->execute();
$result = $rows->fetchALL();
$result['count'] = $count;
if(isset($_POST['action'])){
if ($_POST['action'] == 'increase'){
$update = $dbh->execute("UPDATE count SET count='$count'+1 WHERE username='$username'");
}
}
?>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var count = <? echo $result['count']; ?>;
$("#update").click(function() {
$.ajax({
type: "POST",
url: "button.php",
data: {"action":"increase"},
success: function(update) {
count++;
$("#counter").html(+count);
}
});
});
});
</script>
<button id="update" type="button">Button</button>
<div id="counter"><? echo $result['count']; ?></div>
</body>
</html>
非常感谢,非常感谢任何帮助。即使你能指出我正确的方向,这将有助于我回答我的问题,那将是非常棒的。
谢谢
答案 0 :(得分:0)
你应该:
$count = $result['count'];
而不是:
$result['count'] = $count;
=符号左边的变量是从=符号右边的任何值接收赋值的内容。
在您的更新声明中,您可以执行以下操作,而不是使用计数变量:
$update = $dbh->execute("UPDATE count SET count=count+1 WHERE username='$username'");