22. januar 2009 - 10:04Der er
8 kommentarer og 1 løsning
PHP og MySQL slet poster over 24 timer
Hej eksperter, Kort fortalt:
1. Skal indsætte dato+tid i min database. - skal kunne trækkes ud som eks: 21-01-2009 15:01:43
2. Skal have lavet en funktion (her skal jeg også bruge jeres hjælp), som sletter poster der er over 24 timer gamle.
På nuværende tidspunkt indsætter jeg dato/tid i et varchar() felt i databasen med date('d-m-Y H:i:s'), hvilket jeg tænker ikke er brugbart til en sådan funktion som beskrevet i "2"? Så jeg skal nok også have jeres hjælp til at at vælge det rigtige felttype i mysql databasen.
Ja, det er rigtigt, det er ikke brugbart som du gør det nu. Dit felt i db skal være af typen "datetime" så gemmer du dato i formatet: YYYY-MM-DD HH:MM:SS ( 2009-01-22 10:04:19 )
Når du skal hente fra db kan du bruge DATE_FORMAT ved udtræk, SELECT DATE_FORMAT(datofelt, '%d. %b %Y kl. %H:%i') as tid
eller lade dit script omdanne datoen ved visning.
For at slette poster som er mere end 24 timer gamle:
DELETE FROM tabel WHERE datofelt < DATE_SUB(NOW(), INTERVAL 1 DAY)
Du bliver nok lige nød til at udpensle det lidt for mig.
1. Skal "datetime" feltet oprettes med specielle settings?
2. Jeg skal nok bruge et script til at omformatere datoen der er indsat i databasen, da den ikke er det eneste jeg hiver ud fra databasen. Derudover benytter jeg i øjeblikket strtotime("+6 hours") til at lægge timer til tiden da serveren kører med en anden tid end min. Skal også implementeres.
3. Hvordan indsættes datoen i databasen sammen med en masse andre ting? Kan det laves om til en variabel som jeg kan benytte i stedet eller hvordan? (gør det lidt mere overskueligt i alt det andet rod :))
Hvis jeg skal være helt ærlig, så kan jeg ikke huske det.. Tror vidst jeg skrinlagde det, da jeg ikke havde tid. Men i har jo forsøgt at hjælpe - så deler glædeligt point ud.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.