Beitrag von Tini (187 Beiträge) am Freitag, 10.September.2004, 21:54.
einträge abhängig von datumsfeldeintrag löschen
hallo,
ich dachte, eine lösung meines problems zu haben, dank
der hilfe von marco und sascha.
nach ablauf des datums in der datenbankdatum sollen die
einträge in der datenbankinhalt nach 1 stunde gelöscht werden.
datum=21 uhr - daten werden 22 uhr gelöscht.
(vorausgesetzt, das template wird aufgerufen)
aber die daten werden direkt nach ende des datums gelöscht, d.h.
direkt nach 21 uhr.
mein if ("$Datum<-01:00") wird total ignoriert.
weiß da jemand rat?
danke
tini
get "$Datum", "datenbankdatum";
del "Id==*", "datenbankinhalt";
Antworten
Beitrag von Tini (187 Beiträge) am Freitag, 10.September.2004, 22:15.
Re: einträge abhängig von datumsfeldeintrag löschen
hatte ich vergessen:
wenn ich bei if ("$Datum<-01:00")
statt der 01:00 nur eine 1 einsetze,
klappt die löschung nach 1 tag.
stunden lassen sich aber nicht definieren.
tini
Antworten
Beitrag von herbert (549 Beiträge) am Freitag, 10.September.2004, 22:33.
Re: einträge abhängig von datumsfeldeintrag löschen
probier doch mal 01:00:00
keine ahnung ob das geht, aber rein von der logik ??
gruss herbert
Antworten
Beitrag von Tini (187 Beiträge) am Freitag, 10.September.2004, 22:46.
Re: einträge abhängig von datumsfeldeintrag löschen
danke herbert,
klappt aber auch nicht.
mit der 1 alleine klappt auch nicht, hatte mich vertan.
die einträge werden alle direkt nach ablauf des datums
gelöscht.
tini
Antworten
Beitrag von herbert (549 Beiträge) am Samstag, 11.September.2004, 14:35.
Re: einträge abhängig von datumsfeldeintrag löschen
Antworten
Beitrag von herbert (549 Beiträge) am Samstag, 11.September.2004, 22:03.
Re: einträge abhängig von datumsfeldeintrag löschen
Antworten
Beitrag von hempelr (1976 Beiträge) am Sonntag, 12.September.2004, 10:31.
Re: einträge abhängig von datumsfeldeintrag löschen
mit dem Datumsvergleich in ner normalen Perl-Abfrage funzt das nicht - ist auch für den Zweck hier nicht notwendig.
Die Verlgeiche mit Datum<-1:00 funzen ausschließlich in bp-Funktionen.
Dein Get geht auf was leeres, oder wo wird die Variable Datum belegt?
Du musst also erst mal ne richtige Bedingung für das Holen des DS setzen, ist mir nur nicht klar, welchen Datensatz du holen willst bzw. in welchem Datensatz die Zeit steht, so wie dein get ist, holt er alle Datensätze aus der DB und nimmt den Wert des ersten Datensatzes.
Dann muss der Vergleichswert zum Löschen berechnet werden und dann kann es in die Bedingung der zu löschenden DS eingesetzt werden.
Hier mal als Denkanstoss:
---schnipp
<perl>
get "Id=#", "datenbankdatum"; # hier wird der neueste Datensatz geholt
$deldat = datum("$Datum-1:00","intern");
del "Datum<$deldat", "datenbankinhalt";
</perl>
---schnapp
Ruben
Antworten