hallo,
ich möchte mit meinem loginscript festlegen, dass die letzten loginzeiten eines users in einer tabelle x gespeichert werden.
dazu stehen die folgenden drei felder bereit: Eintrag (auto increment), Datum und ID.
in einer weiteren tabelle y sollen unter einem bestimmten feld punkte zugeordnet werden, maximal jedoch nicht mehr als 3 innerhalb von 24h.
dazu habe ich folgende idee:
in der tabelle x werden nun erstmal drei loginzeiten mit der entsprechend dazugehörigen id aus tabelle y gespeichert. diese liegen alle innerhalb der letzten 24h. es soll also geprüft werden, ob die drei loginzeiten mehr als 24h zurückliegen, wenn ja, dann sollen die einträge in der tabelle x gelöscht werden. sind bereits drei loginzeiten vorhanden und liegen diese jeweils nicht länger als 24h zurück, soll nichts passieren. mein bisheriger quelltext sieht so aus:
...
...
...
mysql_query("UPDATE y SET last_log_date=now(), whole_logins=whole_logins + 1 WHERE id='$id'");
//Tabelle x mit Loginzeiten füllen
mysql_query("DELETE FROM x WHERE Datum=current_date()-24h WHERE ID='$id'");
mysql_query("SELECT COUNT(*) FROM x WHERE ID='$id'");
$result = mysql_result($result,3);
if($result == 3)
{
}
else
{
mysql_query("INSERT INTO x (Datum, ID) VALUES (current_date(),'$id') ");
mysql_query("UPDATE y SET punkte=punkte + 1 WHERE id='$id'");
}
}
in die tabelle x ist das feld "Datum" als timestamp klassifiziert, allerdings wird mir nur das datum korrekt angezeigt, bei der entscheidenden uhrzeit jedoch nur 00:00:00. ich habe bereits mktime() im quelltext anstatt current_date() ausprobiert, dabei hatte er mir dann aber gar kein eintrag mehr in die tabelle geschrieben. ein weiteres problem ist, dass mir mehr als drei einträge in die tabelle geschrieben.
vielleicht kann mir jemand den fehler zeigen?
vielen dank.