Avatar billede mjall0w Nybegynder
23. november 2003 - 23:27 Der er 17 kommentarer og
1 løsning

tjek om dato er mere end 2 dage gammel

Overskriften siger vel sig selv :)
Man skal gå ind i sin DB og se om den dato der står indskrevet er mere end 2dage gammel, og hvis den er mere end 2 dage gammel skal den slettes fra databasen..

Skal bruges til en counter..
Avatar billede ztyxx Nybegynder
23. november 2003 - 23:30 #1
hvordan gemmer du datoen i db´en ?
Avatar billede billen Nybegynder
23. november 2003 - 23:47 #2
DELETE FROM
  din_tabel
WHERE
  TO_DAYS(NOW()) - TO_DAYS(dit_dato_felt) > 2
Avatar billede billen Nybegynder
23. november 2003 - 23:47 #3
går ud fra du bruger mysql ;-)
Avatar billede mjall0w Nybegynder
24. november 2003 - 07:23 #4
Jeg gemmer den sådan her:
$dato = date('d/m/Y');

Prøver det lige lidt senere på dagen billen
Avatar billede mjall0w Nybegynder
24. november 2003 - 07:36 #5
Kan godt være jeg kommer med et lidt dumt spm, men længere oppe på siden bruger jeg:
$dato = date('d/m/Y');
Kan jeg så ikke bare gøre sådan her:?
$query = mysql_query("DELETE FROM counter WHERE TO_DAYS($dato) - TO_DAYS($date) <= 2")OR DIE (mysql_error());

??
Avatar billede billen Nybegynder
24. november 2003 - 15:37 #6
nej det giver ingen mening:

TO_DAYS($dato) - TO_DAYS($date) vil altid være 0... ALTID. (kig efter og du vil se det).

Hvorfor bruger du ikke mysql's dato formater TIMESTAMP og DATETIME?

Det ville gøre det meget nemmere
Avatar billede mjall0w Nybegynder
25. november 2003 - 13:09 #7
ved jeg ikke hvorfor jeg ikke gør, indskriver den bare sådan med $dato = date('d/m/Y'), men kan det da ikke lade sig gøre med den måde jeg gør det på??
Avatar billede billen Nybegynder
27. november 2003 - 08:58 #8
Nej det kan det ikke. For rent matematisk, så vil det blive 0 hver gang.
Avatar billede mjall0w Nybegynder
27. november 2003 - 13:53 #9
Okay, men er ikke lige det vilde inde i dato'er osv på mysql, men hvordan skal jeg så indskrive den i databasen hvis mit felt er timestamp ??
Avatar billede billen Nybegynder
27. november 2003 - 17:40 #10
Er det en bestemt dato som din bruger indtaster, eller datoen lige nu? Hvis det er det sidste skal du bare skrive NOW() der hvor du indsætter din dato. Du skal dog være opmærksom på, at hvis du opdaterer rækken i tabellen med UPDATE, så vil dit datofelt blive opdateret til dags dato igen. For at undgå dette kan du bruge DATETIME i stedet.
Avatar billede mjall0w Nybegynder
28. november 2003 - 17:05 #11
Okay, simpel hen lave et felt der hedder DATETIME, også bruge NOW() ??
Avatar billede billen Nybegynder
29. november 2003 - 01:03 #12
helt korrekt... f.eks. INSERT

INSERT INTO din_tabel (dit_dato_delt) VALUES( NOW() )
Avatar billede mjall0w Nybegynder
30. november 2003 - 17:39 #13
Okay godt, nu er det gjort..
Også bruger jeg bare:
DELETE FROM
  din_tabel
WHERE
  TO_DAYS(NOW()) - TO_DAYS(dato) > 2

Det er rigtig nok sat in med dato feltet ikke ?
Avatar billede billen Nybegynder
30. november 2003 - 20:13 #14
jepper
Avatar billede billen Nybegynder
30. november 2003 - 20:15 #15
Med mysql har man næsten fuld kontrol over sin datofelter. Man behøver stort set ikke lave noget i php. Hvis du f.eks. godt kan lide dit datoformat fra før ('d/m/Y'), så kan du få det ud fra mysql sådan her:

SELECT DATE_FORMAT( dato, '%d/%m/%Y' ) FROM din_tabel
Avatar billede mjall0w Nybegynder
30. november 2003 - 23:10 #16
Jamen det funger jo perfekt, tusind tak skal du have ;)
Avatar billede mjall0w Nybegynder
30. november 2003 - 23:11 #17
hvis du opretter et svar får du lige point
Avatar billede billen Nybegynder
01. december 2003 - 11:57 #18
takker
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