php - 如何在没有cron的情况下向MySQL数据库写入数据?

标签 php mysql ajax cron

我遇到了一个问题。我正在创建一个基于网络的游戏。它更像是基于实时网络的应用程序。我的玩家可以 build 建筑物。每个建筑物都有唯一的哈希 ID。具有所有参数的已建建筑物存储在 SQL 中。我想要做的就是制作自动收集资源(金)的引擎。我不想使用 cron。我想让它在我按下“启动引擎”时开始收集金币:

if( $sql['engine'] == 1 ){
     //do the job..
}

我试过这个方法,但是没有成功(collect.php):

if( $sql['engine'] == 1 ){
  mysql_query("UPDATE `info` SET `gold` = `gold` + 10 WHERE `building`='{$building}'");
}

index.php:

function enginestat() {
    $("#EngineStatus").load("../job/collect.php?building=<?php echo $building; ?>", function () {
        setTimeout( function () {
            enginestat();
        }, 1000);
    });
}
$( function () {
    enginestat();
});

我相信我做错了什么,但是有人可以告诉我我做错了什么吗?我需要一个答案,我需要详细的信息。谢谢。

最佳答案

您正在做的事情可以分解为一系列更小的步骤。例如,如果您每小时收集 X 金币,那么当用户下次加载页面时,您需要做的就是计算他们积累的金币差额。

每次他们检查时,将轮询时间记录在数据库中。下次他们检查时计算差分秒数并插值支付多少。每小时 100 次,相当于每秒 100/3600 次。您显然可以四舍五入以避免显示增量值。

关于php - 如何在没有cron的情况下向MySQL数据库写入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27367559/

相关文章:

javascript - jquery - 连续使用 .done() 给出与 .then()/.done() 相同的结果

php - Drupal 8 Ajax 忘记表单更改

php - 为什么不在生产中启用 Symfony 调试工具?

mysql - 查询以获取每种类型的有限行

mysql - 如何使用PDO和bindParam将数组插入mysql?

mysql select with joins with foreign keys 当使用提供的id时

php - PHP MySQL AJAX 中的多个搜索选项

php - 从 PHP 中的选择选项中删除重复值

javascript - 使用 PHP 和 JavaScript 从数据库中删除数据

php - HMVC路由中的歧义