Zähler oder Ticker... keine ahnung

Speicher doch einfach den Zeitpunkt, wann das Script das letzte mal ausgeführt wurde...
Wenn es noch nicht 15 Minuten her ist, verbietest du die Ausführung.
 
Mal ein konkretes Beispiel ...
PHP:
SELECT `xyz` FROM `xyz` WHERE `time` > '".time() + 900."'
Liest die Datensätze aus, in denen der dort gespeicherte Timestamp länger als 900 Sekunden her ist, also 15 Minuten.
Wenn das einen (bzw. mehrere) Datensatz zurückgibt (mysql_num_rows()), dann vergleichst du den Timestamp mit dem Aktuellen ( $differenz = time() - $row['time']; ) und errechnest, um wie viel du deinen Wert inkrementieren musst ( floor($differenz/900) ).
Verstanden?
 
jupp... big thx an die leute die mir hier geholfen haben ^^ hat mir sehr viel geholfen

THX 4 HLP
 
Du kannst daraus auch gleich eine UPDATE-Anweisung machen:
Code:
UPDATE
        `Tabelle`
  SET
        `Spalte`    = `Spalte` + FLOOR((UNIX_TIMESTAMP() - `Zeitpunkt`) / 900),
        `Zeitpunkt` = `Zeitpunkt` + FLOOR((UNIX_TIMESTAMP() - `Zeitpunkt`) / 900) * 900
 
Theoretisch hört sich das gut an.... in der Praxis wirst du damit über kurz oder lang scheitern.

Man stelle sich vor....ein Browsergame, 1000e Leute sind am zocken und terrorisieren den Server, und dann kommt dazu noch das UPDATE von 1000en Datensätzen...und das auch noch alle 15 Minuten... ich befürchte, da verabschiedet sich der Server alle 15 Minuten.

Versuche lieber, das ganze nur mit einer Berechnung über den Timestamp zu lösen, ohne etwas in die DB zu schreiben.
 
Hmm ich würde den Timestamp zur Zeit der Regestrierung in der User DB speichern. Diesen denn beim einloggen in eine $_Session['reg'] speichern und dann einfach so den Wert überprüfen:
PHP:
<?php
echo "Guthaben:".round((time() - $_session['reg']) / 900),0) * $wert;
?>
das sollte ja eigentlich relativ Prozessor schonend sein...

Lg.
Garlof
 
Zuletzt bearbeitet:
Zurück