【问题标题】:cron file to update the database sequentially after every runcron 文件在每次运行后按顺序更新数据库
【发布时间】:2011-01-22 10:59:57
【问题描述】:

我正在重新设计一款 mmorpg 游戏,但我对这款游戏有点犹豫。 我在每日 cron 文件中有以下代码。

dbn("update mygame set event = '11' where event = '10'");

现在...

此文件每天运行一次。我想以这样的方式更新数据库 第 1 天 ----- 事件 =10, 第 2 天 ----- 事件 =11, 第 3 天 ----- 事件 =12 ...等等, 换句话说, 一旦事件被设置,它会自动更新直到它消失。 因此第 1 天

dbn("update mygame set event = '10' where event = '9'");

第 2 天

dbn("update mygame set event = '11' where event = '10'");

以此类推。

有什么想法吗? 提前感谢您的阅读。

【问题讨论】:

    标签: php mysql tabs cron


    【解决方案1】:

    1) 将事件列设为像 int 这样的数字类型,而不是包含数字的字符串

    2) dbn("UPDATE mygame SET event = event + 1")

    但是,您可能根本不需要此列。如果它所做的只是计算天数,则存储开始日期并计算使用该值时经过的天数。您不必每天运行任何查询。

    【讨论】:

    • 我如何在数据库中添加这样的时间戳?
    • 与您在 INSERT 查询中添加数字的方式相同
    • dbn("update mygame set event = '11' where event = '10 set time = [time]'"); ?
    • 我的问题是 cron 怎么知道每次点击如何停止和继续。
    • 不...您存储时间戳而不是有一个事件列。而且您不再有每日更新查询,所以我不建议您添加。如果事件是自创建行以来已过去多少天的属性,则不需要每天存储和更新它,因为它是派生数据。您可以通过计算当前日期与您在任何时候开始游戏的日期之间的差异来计算当前事件。
    【解决方案2】:
    UPDATE mygame
      SET event=event+1
      WHERE <useful condition>
    

    【讨论】:

    • 我试过了,这样它就可以在一次运行中简单地循环遍历所有阶段。我需要它来更新每次运行的阶段。第 1 天,第 1 阶段,第 2 天 - 第 2 阶段,......等等。
    • 将一列设置为 11,它是 10 完全等同于向其添加 1。不可能既对又错。
    • 如果我要求 cron 将事件更新为 +1,所有这些命令都在一个 cron 文件中,它会在一次运行中将我返回到 0,因为它会循环遍历所有更新。我需要它来更新它每次点击 cron 文件。
    • “它循环遍历所有更新” ← 我不知道这是什么意思,但我确定它是错误的。
    • 它将事件设置为 0,默认值是因为它在一次运行中将所有更新从 1 添加到 12 并返回到 0。
    猜你喜欢
    • 2015-04-17
    • 2010-10-15
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多