Avatar billede dhunters Nybegynder
02. marts 2004 - 15:16 Der er 17 kommentarer og
2 løsninger

Tidsudløb på post i MySQL

Hej alle.

Jeg har en side hvor udvalgte personer kan poste en begivenhed. Når denne begivenhed postes skal samtidig vælges en dato + tidspunkt fx. 20. marts 2004 kl 17:00. Når dette tidspunkt nåes skal posten slettes fra databasen! Nogen der kan give mig noget på hvordan jeg laver det?

På forhånd tak for hjælpen,
/dhunters
Avatar billede exp Juniormester
02. marts 2004 - 15:20 #1
Der er to muligheder... enten et cron-job (sjældent man kan det på webhoteller), eller at du laver et lille script, der hver gang en side loades, checker, om der er nogen af begivenhederne der er udløbet, og i givet fald, sletter dem
Avatar billede dhunters Nybegynder
02. marts 2004 - 15:23 #2
Ok... Hvordan laver man den lille side - hvad skal den indeholde for at checke og slette?
Avatar billede kgp43 Nybegynder
02. marts 2004 - 15:28 #3
Du har en tid i din database. Herefter checker du bare om den nuvændre tid (time())er større end den der er i db'en. Hvis ja, så slettes begivenheden.
Avatar billede dhunters Nybegynder
02. marts 2004 - 15:32 #4
Hvordan checker jeg tiden?
Avatar billede kgp43 Nybegynder
02. marts 2004 - 15:33 #5
noget ala:

$query = mysql_query("SELECT * FROM begivenheder");
while($row = mysql_fetch_array($query)) {

if $row['time'] > time() {
delete from table where id=$row['id']
}
}

- der er nok hundrede fejl, men det skulle kunne laves på denne måde.
Avatar billede kgp43 Nybegynder
02. marts 2004 - 15:34 #6
delete from table where id=$row['id']
=
mysql_query("DELETE FROM table WHERE id=$row['id']")
Avatar billede kgp43 Nybegynder
02. marts 2004 - 15:35 #7
og så skal der jo lige en ";" på :P

well, jeg lavet aldrig noget rigtig første gang, så der er nok flere fejl.
Avatar billede dhunters Nybegynder
02. marts 2004 - 15:39 #8
Allright... jeg prøver det lige! vender stærkt tilbage...
Avatar billede kgp43 Nybegynder
02. marts 2004 - 15:52 #9
Virkede det?
Avatar billede hmortensen Nybegynder
02. marts 2004 - 17:23 #10
Hvorfor ikke bare:
DELETE FROM table WHERE dato >= NOW()

Kommer lidt an på hvordan det tidsformat er i databasen
Avatar billede kgp43 Nybegynder
02. marts 2004 - 19:59 #11
Det kunne man også bruge i stedet for:

$query = mysql_query("SELECT * FROM begivenheder");
while($row = mysql_fetch_array($query)) {

DELETE FROM table WHERE dato >= NOW()

}
Avatar billede hmortensen Nybegynder
02. marts 2004 - 21:16 #12
Hvorfor vil du hente alt ud først ?

Det er squ da spild. Bare slet hvor kriteriet er opfyldt
Avatar billede kgp43 Nybegynder
02. marts 2004 - 22:39 #13
ahhh... du jeg sidder vist og sover :P
Avatar billede kgp43 Nybegynder
02. marts 2004 - 22:39 #14
du = jeg :P
Avatar billede dhunters Nybegynder
11. april 2004 - 15:22 #15
hej... undskyld den lange ventetid! Men jeg har lige et spørgsmål omkring sletningen... rækken i databasen er en "text" og datoen er i databasen lavet om til unix epoch-tallet! Kan I stadig hjælpe?

På forhånd tak,
/dhunters
Avatar billede dhunters Nybegynder
12. april 2004 - 14:57 #16
hallo... har fundet det selv, men der var nogle fejl og mangler i din kgp43 - du får kun nogle points ok?
Avatar billede dhunters Nybegynder
12. april 2004 - 14:57 #17
vil du have hindu_skp?
Avatar billede hmortensen Nybegynder
12. april 2004 - 15:00 #18
Det er lige meget.
Ville bare gøre opmærksom på at det var unødvendigt at hente alt data ud for bagefter at slette det
Avatar billede dhunters Nybegynder
12. april 2004 - 16:56 #19
Helt i orden!
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