Avatar billede blueeye97 Nybegynder
06. september 2004 - 19:40 Der er 9 kommentarer og
1 løsning

Slette records ved onload

Jeg har en mysql database hvor et af felterne er den enkelte records oprettelsesdato.

Meningen er, at records som er 14 dage eller ældre, skal slettes automatisk.

Er der en som kan hjælpe mig der ?
Avatar billede mailand Nybegynder
06. september 2004 - 19:53 #1
hvis du har adgang til din server, kan du køre et schedulet script der...

ellers kan du vel bare kalde en funktion hver gang en side bliver loadet, som sletter evt. records, der er 14 dage gamle.

#Mailand
Avatar billede blueeye97 Nybegynder
06. september 2004 - 19:57 #2
enig...

Hvordan "SQL'er" jeg mig ud af det ?
Avatar billede mailand Nybegynder
06. september 2004 - 20:01 #3
hvordan kører du dine datoer? som timestamps?

men vel noget i stil med:
DELETE FROM table WHERE field < en-variabel-med-dags-dato-minus-14-dage
Avatar billede blueeye97 Nybegynder
06. september 2004 - 20:15 #4
som DATE felt
Avatar billede mailand Nybegynder
06. september 2004 - 20:26 #5
opdagede først nu, det var et php forum, som ikke lige er min stærkeste side, men deklarer en variabel, der er 14 dage mindre en idag, og brug den i din sql.

der må være en funktion, der kan trække dage fra og gemme dem i en variabel. i VB hedder den dateadd - der må være noget lignende i PHP.

Men ja, når du har denne variabel defineret, så bør du kunne bruge den direkte i dit kald og derved få slettet records, der er mere end 14 dage gamle.

#Mailand
Avatar billede sukos Juniormester
06. september 2004 - 20:53 #6
Hvis ikke du kan køre cronjobs på dit hotel, kan du jo lave en fil, og blot tjekke dato for hvornåer den sidst var ændret ved hver load, i stedet for en query.
Og var den sidst ændret igår, ja, så kør query til at slette de sidste 14 dages poster, og efterflg. åbne, skrive til og lukke filen, for at "last modified" dato ændrer sig.
Avatar billede blueeye97 Nybegynder
06. september 2004 - 21:05 #7
Jamen det må da kunne lade sig gøre via sql at slette dem der er ældre end 14 dage...
Avatar billede sukos Juniormester
06. september 2004 - 21:32 #8
Jow da, men snakken indtil nu, er jo kun på hvordan du bedst gør det.
Umiddelbart vil det jo være fjollet at afvikle en query ved hver load af siden.
Et "cronjob" , "taskmanager" som afvikles af severen en gang i døgnet vil jo være det bedste.

Har aldrig selv brugt DATE felter, så jeg vil ikke lige kaste mig ud i et ex. på en query
Avatar billede blueeye97 Nybegynder
06. september 2004 - 21:41 #9
ok.. må se om den kan det...
Avatar billede blueeye97 Nybegynder
06. september 2004 - 21:59 #10
er løst...

mysql_query("DELETE FROM databasenavn WHERE opretdato<'$idag'")

$idag er i forvejen sat til d.d.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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