Avatar billede cyfer Nybegynder
22. januar 2009 - 10:04 Der 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.


På forhånd tak.
Avatar billede showsource Seniormester
22. januar 2009 - 10:21 #1
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)
Avatar billede showsource Seniormester
22. januar 2009 - 10:32 #2
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

Ved INSERT i db

INSERT INTO tabel (datofelt) VALUES NOW()

vil indsætte dags dato + timer, minutter og sekunder
Avatar billede cyfer Nybegynder
22. januar 2009 - 11:37 #3
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 :))


Sorry hvis der er dumme spørgsmål i blandt.
Avatar billede showsource Seniormester
24. januar 2009 - 21:45 #4
1. Nej
2. Det er rimlig simpelt at lave .....
3. Du tilføjer blot feltnavn(e) og værdi(er) i det ex. som jeg har vist.

Og ingen spm. er dumme, kun svar kan være dumt !
Avatar billede tmi Nybegynder
26. januar 2009 - 02:27 #5
showsource, hvorfor er 2 + 2 = 4, når 2 x 2 også er?
Avatar billede cyfer Nybegynder
24. maj 2009 - 00:17 #6
Jeg ved sku ikke lige hvordan og hvorledes med det her spm. Jeg uddeler point til dem der har forsøgt at hjælpe. Læg et svar!
Avatar billede showsource Seniormester
27. maj 2009 - 11:12 #7
Men har du fundet ud af en løsning ?
Avatar billede cyfer Nybegynder
27. maj 2009 - 12:16 #8
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.
Avatar billede showsource Seniormester
27. maj 2009 - 12:28 #9
ok da.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester