-1

動作していない不完全なコードがあります。ユーザーごとにエネルギーバーがあります。私のテーブル "Users" ( usuarios ) には "Energy" ( energia ) と "Energymax" ( energiamax ) 列があります。

このコードでは、これは機能しますが、タイマーを設定したいです。たとえば、1分に1回、これを実行します。

<?php
    mysql_query("UPDATE usuarios 
                 SET energia=energia+1 
                 WHERE energia<>energiamax AND tipo='player'");
?>

私の論理は次のとおりです。最初の1分で「+1」が増加し、カウントダウンが再開されます。1分後、再び「+1」増加します。

そのようなタイマーを作成するにはどうすればよいですか?

ありがとう ;)

4

2 に答える 2

1

MySQL イベントを使用できます

MySQL 5.1.6 以降を持っていることを忘れずに、イベントを有効にしてください。

SET GLOBAL event_scheduler = ON;

1分タイマー用

DROP EVENT IF EXISTS myevent;

CREATE EVENT myevent
ON SCHEDULE EVERY 1 MINUTE
DO UPDATE usuarios SET energia=energia+1 
    WHERE energia<>energiamax AND tipo='player';
于 2012-10-02T10:36:33.587 に答える
0

タイマーを設定する代わりに、「energia」列をまったく使用せず、「energia」がゼロのときのタイムスタンプをテーブルに格納する方がよい場合があります。そして、選択すると、開始からの秒数を計算するだけです-それが「エネルギー」の値です。したがって、毎分 SQL クエリを呼び出す必要はありません。

于 2012-10-02T10:24:52.620 に答える