javascript - JS定时器和mysql不同步

标签 javascript php mysql

<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计时器工作正常,一秒一秒,但在数据库中,却是一片困惑。时间随机增加......我不明白为什么......

提前致谢!

最佳答案

我不知道你最终想要做什么,但这似乎有点可疑。

我也不清楚“数据库困惑”是什么意思。对于它的值(value),您可能应该像这样更新:

$qry="UPDATE users SET score = score + '$_POST['score']' WHERE username='{$_SESSION['user']}'";

您不需要单独的查询来查找现有分数。只需增加它即可。您还应该注意 sql 注入(inject)。

关于javascript - JS定时器和mysql不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33045104/

相关文章:

php - 当我通过 $_POST 将隐藏输入发送到 PHP 时,我丢失了数据吗?

mysql - 行到列 mysql

php - 如何从两个不同的表中进行选择并按一列对它们进行排序?

javascript - 将 log4javascript 配置为 struts Web 应用程序

javascript - 如何将commonservice文件中的对象的值获取到html

javascript - 通过 json 数组的 AngularJS ng-repeat 在第二个数组中不起作用

php - 什么是 2-legged Oauth

javascript - 无法调用未获取 page.matches OnSenUi 的函数

JavaScript IF 语句

mysql - Rails 4 应用程序进入 Bluehost 的问题