JS定时器和mysql不同步
JS timer and mysql not in sync
<script>
<!--
var milisec=0
var seconds=0
document.d.d2.value='0'
function display(){
if (milisec>=9){
milisec=0
seconds+=1
}
else
milisec+=1
document.d.d2.value=seconds+'.'+milisec
setTimeout("display()",100)
}
display();
setInterval(function(){
$.post("procesare.php",{score: seconds},function(data){
$('#text').html(data);
});
},1000);
//-->
</script>
这是我的JS代码。我试图在数据库中存储时间的用户是我的索引。下面是我的"procesare.php",我在这里调用查询:
if(isset($_POST['score'])){
$result = mysql_query("SELECT nickname, score FROM users ORDER BY score DESC");
$rank = 1;
if (mysql_num_rows($result)) {
while ($row = mysql_fetch_assoc($result)) {
echo "<br />{$rank}.
{$row['nickname']} -->
{$row['score']}";
$rank++;
}
}
$qry="SELECT score FROM users WHERE username='{$_SESSION['user']}'";
$result = mysql_query($qry) or die(mysql_error());
$result=mysql_fetch_row($result);
$total = $_POST['score'] + $result[0];
$qry="UPDATE users SET score='$total' WHERE username='{$_SESSION['user']}'";
mysql_query($qry) or die(mysql_error());
我的问题是,JS定时器工作正常,秒逐秒,但在数据库中,它是一个混乱。时间随机增加.....我不知道为什么....
提前感谢!
我不知道你最终想做什么,但这似乎有点可疑。
我也不清楚"数据库混乱"是什么意思。无论如何,您可能应该这样更新:
$qry="UPDATE users SET score = score + '$_POST['score']' WHERE username='{$_SESSION['user']}'";
您不需要单独的查询来查找现有的分数。只要增加它。您还应该注意sql注入。
相关文章:
- 使用jquery将mysql数据获取到新的表行中
- 在控制器和数据对象之间同步数据
- 同步调用,直到用户通过angular验证为访问者
- javascript函数同步
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 将地理编码结果转换为php变量以发布到mysql数据库
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 如何将Knockout.JS与服务器已经在DOM中呈现的数据同步
- 如何使用JS禁用表行,并在MYSQL中插入所选选项
- 从MySQL数据库中获取输入数据需要两次页面刷新
- 音频和动画在javasctipt循环中同步
- 将一个表的id与另一个表中的user_id进行匹配,以获取mysql中的记录
- 主线程上的同步XMLHttpRequest已弃用
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 主干网.与Safari同步问题
- 将数据从本地SQL Server同步到Internet上的MySQL Server(实时服务器)
- MySQL/node.js如何制作/伪造同步
- Jquery PHP mySQL ajax方法将数据同步到两个客户端
- JS定时器和mysql不同步
- AJAX→PHP不同步更新MySQL数据库