php: letzte ausführung
-
hallo ich will in meinen script, ein panel/widget erstellen, welches mir anzeigt was zu letzt gemacht wurde.
wenn zuletzt ein beitrag bewertet wurde soll er das anzeigen, wenn zuletzt ein beitrag geschrieben wurde soll er das anzeigen, wenn zuletzt ein beitrag angeklickt wurde soll er das anzeigen.So sollte es aussehen:
19.04.2010 - 10:00 Uhr : Beitrag 23 wurde editiert
19.04.2010 - 09:00 Uhr : Beitrag 12 wurde positiv bewertet
19.04.2010 - 08:00 Uhr : Beitrag 44 wurde in der Druckversion angesehen
19.04.2010 - 02:00 Uhr : Beitrag 12 wurde negativ bewertetWie realisier ich das am besten? Jemand ne Idee?
-
ganz simple log tabelle anlegen
id, tstamp, beitragsid, aenderungsartid(oderwasweissich) ^^z.b. ..
und dann bei jeder aktion eben einen log eintrag in diese tabelle setzen.
-
Stimmt. So simple hab ich gar nicht nachgedacht xD
Ist halt die Frage, ob es sich dafür lohnt eine extra MySQL Tabelle anzulegen?!
-
Wie denn sonst?
Wir reden ja "nur" über eine bzw. zwei Tabellen und nicht über eine komplette neue Datenbank.
-
PRIEST schrieb:
Wie denn sonst?
Wir reden ja "nur" über eine bzw. zwei Tabellen und nicht über eine komplette neue Datenbank.Ok habs über ne zweite MySQL-Tabelle gemacht und klappt auch alles wunderbar.
Nun will ich ja nicht unenendlich viele Einträge machen, weil dann ist die Datenbank ja ratz fatz knackig voll. Außerdem interessen mich ja irgendwelche Tägikeiten vor 5 Tagen nciht mehr.Gibts ne Möglichkeit, dass er immer nur 10 Einträge macht und dann wieder den ersten überschreibt?
-
Klar. Entweder du schickst bei jedem Aufruf eine Query hin, die MySQL sagt "Lösche alle Einträge älter als X Stunden/Minuten/Tage/Whatsoever", oder du richtest dir einen CronJob ein, der das in bestimmten Intervallen erledigt.
-
Wenn deine DB so schnell voll ist, wuerde ich zum Cronjob tendieren, das spart dann enorm Performance am Server.
-
Gibts in MySQL nicht mitlerweile auch trigger? Falls kein CronJob verfügbar ist (gibt ja genug webhost angebte, wo das nic hgeht) könnte man einfach auf INSERT triggern und darin entsprechend ein delete statement aufrufen...
-
es gibt in mysql events