Avatar billede TumseMM Nybegynder
17. juli 2011 - 12:29 Der er 9 kommentarer og
1 løsning

Delete user-posts kl. 00.00

Hej Eksperten.dk

Jeg er igang med denne hjemmeside hvor brugere afslutter dagens sætning. Derfor skal jeg bruge en formel der sletter brugernes posts hver dag, så der næste dag er klar til nye sætninger..

Hvordan gør man det?
Jeg har prøvet mig frem og googlet lidt. Er det her rigtigt?:

<?php
mysql_query("DELETE * FROM a WHERE date = DATE(1 day())");
?>

Ville gerne have brugernes sætninger til at være fjernet fra hjemmesiden kl 00.00 om aftenen.

Sætter pris på alt form for hjælp!!
Mvh TumseMM
Avatar billede heinzdmx Nybegynder
17. juli 2011 - 12:38 #1
Lyder til at det optimale er at bruge et cronjob der kører hver dag ved midnat
Avatar billede TumseMM Nybegynder
17. juli 2011 - 13:08 #2
Hej heinzmx
Det har jeg ingen erfaring med. Hvordan gør man det? :)
Avatar billede muddi Praktikant
17. juli 2011 - 13:09 #3
Hvorfor vil du bruge delete? Kan du ikke nøjes med at have et timestamp på hver "dagens sætning", som du så validerer og hvis den er fra i går eller ældre, så sætter du et bit-felt som markerer at den skal ignoreres. Du behøver så kun at validere alle de dagens sætninger, som ikke har bit-feltet sat til sandt. Et sådant bit-felt kan du jo f.eks. kalde for ´isHidden´ eller lignende.

Du kan så slette dagens sætninger én gang om året manuelt, og måske finder du ud af at det faktisk kan bruges som en slags historik etc.

At indsamle data for derefter blot at slette dem virker fjollet ;)
Avatar billede heinzdmx Nybegynder
17. juli 2011 - 13:51 #4
Cronjob er unixverisonen af Windows Planlægning, du sætter et job til at køre til et bestemt tidspunkt, det er ikke alle host's der understøtter det, men der er sider der stiller deres servere til rådighed til at udføre et cronjob.

F.eks.:
http://www.onlinecronjobs.com/


Men er nu enig med muddi, det virker dumt at slette hvad brugerne tilføjer - hvad er ideen så?

I stedet bør du filtere på data.

Evt. kan du i stedet slette for hver måned hvis det er for at spare på plads.
Avatar billede TumseMM Nybegynder
21. juli 2011 - 19:08 #5
Tak for hjælpen, men jeg fandt en anden måde. Lavede en variabel: q_id, som stiger en værdi hver dag, hvor scriptet så "hidder" en q_id som ikke er 1. Meget smart, så jeg gemmer dataen i databasen, så jeg på et senere tidspunkt kan hive en historik ud.

Super gode ideer ellers!
Avatar billede heinzdmx Nybegynder
21. juli 2011 - 19:22 #6
Ikke for noget, men det lyder meget som det muddi har skrevet :)

Du bruger jo bare et int i stedet for timestamp
Avatar billede TumseMM Nybegynder
21. juli 2011 - 19:42 #7
Det ved jeg ikke noget om, men det må muddi da så undskylde. Giv et svar muddi, så giver jeg nogle points :)
Avatar billede muddi Praktikant
21. juli 2011 - 20:04 #8
Jeg skriver lige fra min mobil, så jeg er lidt hæmmet. Jeg synes du skal bruge en bit i stedet for en int, da en int har en byte size på 4 bytes. En BIT(m) bruger (m+7)/8 byte.
Alternativt kan du bruge en tinyint, som også fylder 1 byte.

Find den type der bedst passer til dit indhold, så undgår du overhead. I dette tilfælde er det nok ikke så vigtigt, men gør det alligevel til en god vane nu.

Ang. point så har du mere brug for dem end jeg. Gem dem til en anden gang ;)
Avatar billede muddi Praktikant
21. juli 2011 - 20:05 #9
Hehe en int har en byte size på 4 byte.
Avatar billede TumseMM Nybegynder
23. juli 2011 - 10:53 #10
Okay tusind tak muddi. Vil lige tjekke det ud, så følger jeg op på det:)
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