2012-10-02 29 views
-1

我有一個不完整的代碼,不能正常工作。 我有一個能源酒吧爲每個用戶。我的表格「Users」(usuarios)具有「Energy」(energia)和「Energymax」(energiamax)列。計時器能量棒 - > php + mysql

有了這段代碼,這個工作,但我想設置一個計時器,例如:在1分鐘內1,它運行這個。

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

我的邏輯是:第一分鐘它增加「+1」,並重新開始倒計時。 1分鐘後,再次增加「+1」。

我應該如何創建這樣的計時器?

感謝)

+3

你嘗試過什麼? –

+1

誰是他'**'...? –

+0

Fred,我是一名3D設計師/自由職業者/學生;) –

回答

0

這可能是最好不要使用「能量控制」在所有列並存儲的時間戳時「ENERGIA」是表中的零,而不是設置定時器。選擇時只需計算自啓動以來的秒數 - 即'energia'的值。所以你不必每分鐘都調用一次SQL查詢。

+0

僅當'energia'與時間呈線性關係時纔有效,並且不受其他操作的影響 - 這在遊戲中始終存在。 – Petr

+0

怎麼樣?我不明白... –

1

您可以使用MySQL Events

不要忘了有MySQL的5.1.6和更高版本以及與

SET GLOBAL event_scheduler = ON; 

打開事件一分時鐘使用

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'; 
+0

是的,但是,我創造了嗎?我創建一個新的PHP文件? –

+0

敢肯定你只是執行這個腳本,你就大功告成了:) –

+0

當我把這些代碼在phpMyAdmin的,看來這: 埃羅 COMANDO SQL: CREATE EVENT myevent ON SCHEDULE EVERY1分鐘能做開始更新USUARIOS SET ENERGIA = energia +1 WHERE energia <> energiamax AND tipo ='玩家'; Mensagens do MySQL: #1064 - 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊「事件myevent ON SCHEDULE每1分鐘 DO BEGIN UPDATE USUARIOS 」在行1 –