Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Datensatz aus Datenbank nach bestimmter Zeit löschen

Frage Entwicklung PHP

Mitglied: Michi262

Michi262 (Level 1) - Jetzt verbinden

08.08.2008, aktualisiert 14.08.2008, 7560 Aufrufe, 6 Kommentare

Hi

da mir die SuFu leider nicht helfen könnte stellt ich euch meine Frage mal:

Also ich habe in meiner Datenbank Daten (kann man sich ja denken, aber egal) nun möchte ich alle Daten die älter als z.B. 5 Tage (120h) sind löschen. Die Datensätze haben eine Tabelle in denen ihr erstellung´s Datum als Zahl z.B. 1216396873 stehen. Nun wollte ich fragen wie ich es machen muss das das programm weiß was älter als 120h ist und löschen soll (wie ich was aus einer DB lösche weiß ich, kenn mich nur nicht mit dem Datum aus).

Hoffe Ihr habt verstanden was ich meine

Gruß
Michi262
Mitglied: kaiand1
08.08.2008 um 21:58 Uhr
Lass einen Cronjob alle 6 Std laufen der Prüft ob der Eintrag noch aktuell ist oder in den Trash gehört
oder halt bei jeden Aufruf deiner Seite?!
Bitte warten ..
Mitglied: Michi262
08.08.2008 um 23:20 Uhr
ich hätte das bei jedem aufruf gemacht. aber ich weiß j anicht wie ich überprüfe wie alt die daten sind. Ich hab mir das so gedacht.

ich dachte mir ich mach das ganze mir ner if anweisung.

$time=time()
$timedb= daten aus der datebank

$conrol = $time - $timedb

if($conrol => 120h)

{
datensatz aus db löschen
}

(das ganze ist natürlich abgekürz nur um euch meine idee zu zeigen)

mein problem ist nur das ich halt ne weiß welches datum welche zahlen reihenfolge ist.
hab z.B. kein plan das 1216396873 ist 18:01:13 18.07

gruß
Michi262
Bitte warten ..
Mitglied: Fritzchen
09.08.2008 um 18:11 Uhr
Hallöchen.

Hm, eine Möglichkeit wäre den gestzten Zeitstempel wieder in ein richtiges Datumsformat zurück zu verwandeln.

Dann so:
date("d.m.Y - H:i:s",$timedb)

$timedb wäre dann hier dein Zeitstempel aus deiner DB

Tschau.
Bitte warten ..
Mitglied: Dani
09.08.2008 um 22:09 Uhr
Hi Michi,
es wäre interessant zu wissen, welche MySQL Version du einsetzte. Denn somit könntest z.B. bei v5 die Neuerung "Trigger" benutzen. Sprich dieser kann bei verschiedenen Events angeschlossen werden. Somit brauchst du keine Cronjob oder sogar per PHP lösen - alles nur mit Arbeit verbunden. ^^

Diese blöde "Zahl" ist die Zeit in Sekunden die seit dem 01.01.1970 vergangen ist. Sprich du Rechnst kurz die 120 Stunden in Sekunden um und gut ist (5*24*60*60). Danach rechnst du die Zeit auf den Timestamp drauf und schaust ob er kleiner oder größer ist wie der Aktuelle - fertig.


Gruss,
Dani
Bitte warten ..
Mitglied: mschatz
12.08.2008 um 01:35 Uhr
Nochmal hallo Michi262

Kurz zur Erklärung: Das Format in deiner Tabelle nennt man UNIX_TIMESTAMP. Diese Zahl gibt die Anzahl der abgelaufenen Sekunden seit dem 01.01.1970, 00:00 Uhr an.

hier mal 2 Beispiele für dich:

01.
mysql_query("DELETE FROM tabelle WHERE datum < '".strtotime('-5 days')."'"); 
02.
mysql_query("DELETE FROM tabelle WHERE datum < '".strtotime('-120 hours')."'");
Gruß,

Markus
Bitte warten ..
Mitglied: Michi262
14.08.2008 um 13:18 Uhr
hi.
danke für eure hilfe. habs hinbekommen
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Exchange Server
Exchange 2010 Akzeptierte Domäne löschen (4)

Frage von Rob1982 zum Thema Exchange Server ...

Exchange Server
gelöst SBS2011 - im Exchange mobile Geräte löschen (4)

Frage von MiSt zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (12)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...