2012-03-05 15 views
4

PHPで実装する最良の方法を知りたいのですが、その間にサーバ上のいくつかのイベントによってインクリメントされています1日は、新しい日が来ると、つまり真夜中にゼロにリセットされます。おそらく、カウンタの最終値に関連付けられた日付を現在の日付と比較すると、リセットされますか?PHPのサーババインドされたカウンタが深夜0にリセットされるか、少なくともそう思われる

EDIT:カウンタが増分されるときにカウンタがリセットされた場合、カウンタが増分された最後の時刻が昨日または前日であったとコードが何らかの形で判断した場合はどうなりますか?それで十分だろう。

+0

テーブルカウンタ(名前、値、日付)があるとしましょう。上記のサーバーで「cron」を使用できますか? – prodigitalson

+0

それはどんな種類のカウンターですか?正確に何をしようとしているかによっては、実際のカウンターを作るのが最も理にかなっていないかもしれません。他の手段を使って同じロジックを達成する方が良いかもしれません。 – deceze

+0

@prodigitalsonよく分かりません。 –

答えて

2

データベースにカウンタを保存していますか?そうであれば、最後の変更の日付をそれに沿って保存したいだけかもしれません。

$counter_id='herpderp'; 
$today = date('dMY'); 
$date, $value = query("SELECT date, value FROM counters where name='$counter_id'"); 
if ($date!=$today) { 
    $value = 0; 
    query("UPDATE counters SET date='$today', value=1 WHERE name='$counter_id' AND date='$date'"); 
} else { 
    query("UPDATE counters value=value+1 WHERE name='$counter_id' AND date='$date'"); 
} 
echo $value; 
+0

これは、ありがとう、ありがとう。そして他の人たちに:それは本当に擬似コードであり、文字通りそれを取らないでください。 –

1

サーバによっては、スケジュールされたタスク(Windows)またはCRONジョブ(Linux)のいずれかを実装することができます。これは、スクリプトが特定の時刻(または夜)に実行できるようにするものです。

カウンタについては、いくつかの方法で実装できます。データの整合性とセキュリティのために、私はその値をデータベースに格納します。インクリメントするには、値をフェッチしてインクリメントします(単一のSQLクエリでこれを行うには、DBMSに応じていくつかの方法があります)。そうしないと、PHPのI/Oコマンドを使って設定ファイルを編集することができます。あなたが私に私はあなたのタスクを設定する方法を見つけることができる場所で特定のチュートリアルを与えることができ、サーバーの設定に関する詳細な情報を与える場合

CRONジョブ/スケジュールされたタスクの設定

これを理解したら、特定のスクリプトを呼びたいと思うでしょう。 PHPのスクリプトは、次のように設定することができます:

現在のD/M/Yと、データベースや設定ファイルに保存されている前日とを比較します。これがチェックアウトされている場合は、適切と思われる分析アクションを実行してデータベース/ファイルを更新します。

+0

興味深い情報をありがとう。 –

関連する問題