ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
516
516
EMPFEHLEN
-
19.06.08 12:38 #1
- Registriert seit
- Apr 2005
- Ort
- Bingen / Am Rhein
- Beiträge
- 121
Hallo,
ich habe ein kleines Uploadscript bei dem User angeben können wie lange die Datei auf meinem System bleiben soll. Er hat die Auswahl zwischen 7, 30 und 90 Tagen.
In der Datenbank hab ich nun dafür zwei Spalten vorgesehen.
Zum Einen eine Spalte "Speicherzeit" mit VARCHAR in der dann die Zahl X drin steht.
Zum Anderen eine Spalte "Eintragungsdatum" mit date in der die Funktion NOW() benutzt wird.
Wie kann ich nun mit einer PHP-SQL Funktion die gesamte Datenbank durchlaufen? Also dass er sich sozusagen jede Zeile vornimmt und schaut, ob das Eintragungsdatum im Vergleich vom heutigen Datum grösser als X ist?
Kann mir da jemand weiterhelfen?
Liebe Grüße
-
- Warum trägst du nicht beim Speichern des Datensatzes gleich das Löschdatum ein ? Also wenn der Benutzer den Datensatz speichert, wird "Aktuelles Datum" plus "gewählte Frist" in ein Feld "Löschdatum" eingetragen. Mit Select ... from myTable WHERE Löschdatum < "HeutigesDatum" kriegst du die Row's, welche das Verfalldatum erreicht haben
Gruss
-
19.06.08 13:12 #3
- Registriert seit
- Apr 2005
- Ort
- Bingen / Am Rhein
- Beiträge
- 121
In der Tat, wäre das eine praktische Lösung. Probiere ich gleich mal aus
-
19.06.08 18:28 #4
- Registriert seit
- Apr 2005
- Ort
- Bingen / Am Rhein
- Beiträge
- 121
Hi,
um nochmal auf mein Problem zurückzukommen, weil ich jetzt seit mehreren Stunden daran sitze.
Hab nun folgendes probiert
Code :1 2 3 4 5 6 7 8 9 10 11
$heutigesdatum = date("d.m.Y",$timestamp); $abfrage = "SELECT * FROM `img` WHERE speicherzeit < '$heutigesdatum'"; $ergebnis = mysql_query($abfrage) OR die(mysql_error()); while($row = mysql_fetch_object($ergebnis)) { unlink() // Dateien löschen etc.... }
Jedoch gibt er mir JEDE zeile aus, egal welches Datum ich als heutiges Datum benutze.
Woran kann das Problem liegen? "Speicherzeit" ist VARCHAR. Kann es daran liegen?
Ich will halt eine Art Schleife, die alle Zeilen raussucht, inder das Löschdatum kleiner als das heutige Datum ist. Anschließend soll er die Zeile löschen und von meinem Server die Daten löschen....
Ich kriege aber die SQL Funktion nicht ganz gebacken.
Kann mir da jemand helfen?
Sry für Doppelpost.
-
Versuch es mal anders.
Du benutzt einen UNIX-Timestamp. Sind nur Zahlen und damit lässt sich viel leichter arbeiten.
Die Spalte "Uploaddatum" und dei Spalte "Löschdatum" wandelst du in int(11) um.
Uploaddatum füllst du beim Eintragen mit, und Löchdatum mitCode sql:1
UNIX_TIMESTAMP()
.Code sql:1
UNIX_TIMESTAMP() + (Haltbarkeitstage * 60 * 60 *24)
Die Abfrage würde dann lauten:
Code sql:1
SELECT * FROM tabelle WHERE `LÖSCHDATUM` < UNIX_TIMESTAMP();
Bums fertig.
Ach ja verwende nach Möglichkeit,anders als ich gerade, keine deustchen Umlaute in den Tabellen-,Datenbank- etc. namen.
-
19.06.08 23:16 #6
- Registriert seit
- Apr 2005
- Ort
- Bingen / Am Rhein
- Beiträge
- 121
-
geht natürlich nur zur lasten der geschwindigkeit, aber auch eine möglichkeit.
wir haben gerne geholfen
Ähnliche Themen
-
Artikel nach bestimmter Zeit löschen
Von alex130 im Forum PHPAntworten: 10Letzter Beitrag: 20.06.08, 18:54 -
Werte nach bestimmter Zeit aus DB löschen
Von 26toto26 im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 12.04.07, 16:00 -
Problem mit löschen nach bestimmter Zeit
Von Rollo im Forum PHPAntworten: 5Letzter Beitrag: 25.08.06, 21:30 -
DB Inhalt nach bestimmter Zeit automatisch löschen
Von kesnw im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 25.10.03, 18:18 -
Eintrag nach einer bestimmten Zeit löschen
Von Sebastian Wramba im Forum PHPAntworten: 4Letzter Beitrag: 31.03.02, 16:09





Zitieren
Login





