PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Automatische Zeit Prüfung mit Aktion


cas-ge
04.08.2009, 19:54:13
Hallo zusammen,

ich habe folgendes Problem. Ich möchte gerne aus einer Datenabank einen Zeitwertabgleichen und wenn dieser eine von mir vorgegeben Zeit überschreitet eine Aktion stattfindet.

Es geht darum das verschiedene Nutzer eine Session laufen haben. Und wenn jemand mit einem "zug" nach 84std im Rückstand ist das diese Session vom System beendet wird.

Ich poste hier den Code in der Hoffnugn auf eine schnelle Lösung. Weil Momentan ist es so, wenn ich das Script ausführe das ALLE Session beendet werden selbst welche die erst vor einer Std. gestart sind als Bsp.

Ich möchte aber das NUR die beendet werden welche tatsächlich über der Zeit liegen. Ich denke ich habe nur einen Gedankenfehler da es ja Funktioniert nur nich ganz so wie ich es möchte ;)

MfG
und Danke im vorraus


EDIT: also jede session hat eine feste id

function autoloeschenstrafpunkte()
{
echo "Hier finden Sie eine &Uuml;bersicht &uuml;ber aktuelle K&auml;mpfe welche eine Fristverpeilung besitzen (Letzter Zug &auml;lter als 4 Tage)<hr>";
$now = time();
$sql = 'SELECT * FROM battle';
$res = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_assoc($res))
{
$ID = $row['id'];
$STATUS = $row['status'];
$DATE1 = $row['date1'];
$DATE2 = $row['date2'];
$DATE3 = $row['date3'];
$DATE4 = $row['date4'];
$DATE5 = $row['date5'];
$DATE6 = $row['date6'];
$BEWERTET = $row['bewertet'];
$HERAUSFORDERER = $row['herausforderer'];
$GEGNER = $row['gegner'];


if ($DATE1 <> "")
{
$alter = $now-$DATE1;
}
if ($DATE2 <> "")
{
$alter = $now-$DATE2;
}
if ($DATE3 <> "")
{
$alter = $now-$DATE3;
}

if ($DATE4 <> "")
{
$alter = $now-$DATE4;
}

if ($DATE5 <> "")
{
$alter = $now-$DATE5;
}
if ($DATE6 <> "")
{
$alter = $now-$DATE6;
}
$alter = $alter / 86400;

$alter = floor($alter);
//echo "<b>$alter</b>";

if ($STATUS <> 5 AND $BEWERTET <> "EOR")
{
echo "<hr>Battle-ID: $ID | Status: $STATUS | letzter Spielzug vor: $alter Tag(en)<br>";
echo "50 Strafpunkte f&uuml;r <b>";

kampfmanuellbeendensql($ID,$HERAUSFORDERER,$GEGNER);

if ($STATUS == 1)
{
echo "Herausforderer: $HERAUSFORDERER";

punktevergabe($HERAUSFORDERER,"-50");
}

if ($STATUS == 2)
{
echo "Gegner: $GEGNER";
punktevergabe($GEGNER,"-50");
}

if ($STATUS == 3)
{
echo "Herausforderer: $HERAUSFORDERER";
punktevergabe($HERAUSFORDERER,"-50");
}

if ($STATUS == 4)
{
echo "Gegner: $GEGNER";
punktevergabe($GEGNER,"-50");
}
echo "</b><br>Kampf muss beendet werden!<br>";
}

if ($STATUS == 5)
{
//echo "Battle-ID: $ID | Status: $STATUS | Alter: $alter Tag(e)<br>";
} } }
}

Damir
04.08.2009, 23:29:31
Hi,

die Change das dir hier jemand hier hilft wenn du dein Code hier so lieblos reinknallst ist relativ gering! Bitte nutze in Zukunft die dafür vorgesehenen PHP-Tags, die du bei jedem Posting in der Leiste über dem Textfeld siehst.

Ich habe das jetzt mal für dich gemacht, allerdings habe ich deinen Code nicht formatiert...

Damir