• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datensatz für besitmmte Zeit behalten

Witschi262

Blogger
Hallo,
ich habe einen Datensatz in eine mySQL Datenbank gespeichert dazu noch die Aktuelle Zeit.

Jetzt möchte ich, dass ich ein Datensatz nach einer gewissen zeitspanne wieder Automatisch gelöscht wird.

Ich hätte eine Umständliche Methode: Die Anfangszeit und die "Zielzeit" abspeichern und beim Ausführen eines Scriptes wird geprüft: Ob jemand gebannt wurde.

Ich möchte das aber recht praktisch und vollkommen Automatisch machen, ist das möglich?
 
Werbung:
Ich hätte eine Umständliche Methode: Die Anfangszeit und die "Zielzeit" abspeichern und beim Ausführen eines Scriptes wird geprüft: Ob jemand gebannt wurde.
Wieso sollte das umständlich sein? Ist doch nur eine Datenbankabfrage.

Ich möchte das aber recht praktisch und vollkommen Automatisch machen, ist das möglich?
Vielleicht ein Cronjob? Halte aber die genannte Methode für die Sinnvollste.
 
Werbung:
Du kannst mit einer Datenbankabfrage auch sowas lösen, auch ohne dass du vorher die Zielzeit berechnen musst. Dazu bietet mysql viele Funktionen: Datums- und Zeitfunktionen
Vorrausetzung, der Datentyp ist ein Datums- oder Zeittypen

Also in etwa so
Code:
delete from bans where DATE_ADD(anfangszeit, INTERVAL 30 DAYS) < now();
 
Okay, naja erstmal muss man ja was in die Datenbank einfügen, die Übertragung der Variable klappt alles soweit, nur das eintragen in die Datenbank nicht.
Die Zeile:
PHP:
mysql_query("INSERT INTO bann (ip) VALUES (NULL, '".mysql_real_escape_string($bann)."')");
 
Werbung:
Column count doesn't match value count at row 1
Recht viel kann ich damit aber nicht anfangen. Ich habe eigentlich die Datenbank nochmals überprüft!
 
Wenn Du dir das Statement mal anschaust

Code:
mysql_query("INSERT INTO bann (ip) VALUES (NULL, '".mysql_real_escape_string($bann)."')");

in wievielen Spalten soll etwas gespeichert werden? Genau, eine, namens "ip".
in wievielen Spalten willst Du etwas speichern? Genau, zwei. Der Wert "NULL" in der ersten und $bann in der zweiten.

Fällt was auf? Lass NULL weg.
 
Werbung:
Zurück
Oben