Avatar billede konder Nybegynder
07. august 2007 - 09:56 Der er 31 kommentarer og
2 løsninger

udtræk efter dato

Jeg er atter stødt ind i et deprimerende problem. Efter hjælp her, har jeg kunne trække data ud v.h.a. curdate().
Jeg kan: $foresp = mysql_query("SELECT adr, emne, tekst FROM rapport WHERE dato1 < CURDATE();");
while ($row=mysql_fetch_assoc($foresp)){.....
og med > og <= og >= men der vises desværre blot en blank side når jeg har dato1 = CURDATE();. Nogen der kan gennemskue miseren?
Avatar billede Slettet bruger
07. august 2007 - 10:17 #1
har du tjekket det svar jeg lige har givet dig?

så vidt jeg husker er dato1 ikke af typen date, men har faktisk også tid på sig. Så anvend

date(dato1)=curdate()
Avatar billede konder Nybegynder
07. august 2007 - 10:24 #2
Feltet er datetime. Og med dit forslag får jeg igen fejl:Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
Avatar billede sw_red_6 Nybegynder
07. august 2007 - 10:30 #3
Kan det være fordi der ikke er noget i DB med dags dato?

Desuden, hvis dato1 er datetime så står det i formattet YYYYMMDDHHMMSS eller muligvis YYYY-MM-DD HH:MM:SS så der kan muligvis være lidt problemer hvis du ikke har HHMMSS med i søgningen
Avatar billede Slettet bruger
07. august 2007 - 10:32 #4
hmm, jeg testede med en søjle af typen timestamp, og det virker fint
Avatar billede Slettet bruger
07. august 2007 - 10:34 #5
det er jo det date-funktionen skulle klare, altså fjerne tidsdelen
Avatar billede konder Nybegynder
07. august 2007 - 10:48 #6
Det eneste der rigtig virker er WHERE dato1 > curdate(); el.WHERE dato1 < curdate();  alle andre giver fejl.
Avatar billede sw_red_6 Nybegynder
07. august 2007 - 10:49 #7
hmm det skulle den også..
Hvilken version af mysql bliver brugt? 4.1.1 eller nyere?
prøv at sætte "or die(mysql_error());" ind efter din mysql_query for at tjekke om der skulle være noget galt i query'en
Avatar billede konder Nybegynder
07. august 2007 - 10:51 #8
Feltet er YYYY-MM-DD HH:MM:SS og det virker heller ikke med WHERE dato1 = 2007-08-01 07:31:50;
Avatar billede konder Nybegynder
07. august 2007 - 10:54 #9
Samme fejlmelding Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\appserv\www\rungstedlund\rapport2.php on line 34
Avatar billede Slettet bruger
07. august 2007 - 10:55 #10
hvis du skal skrive det direkte skal du huske dine ''
Avatar billede konder Nybegynder
07. august 2007 - 10:56 #11
PHP Script Language Version 4.3.11
Avatar billede Slettet bruger
07. august 2007 - 10:56 #12
men det burde ikke være nødvendigt ved brug af curdate

mit timedate felt har samme syntaks og der virkede

DATE(timestamp)=CURDATE()

fint
Avatar billede Slettet bruger
07. august 2007 - 10:57 #13
vi skal bruge MySQL versionen, ikke PHP versionen
Avatar billede konder Nybegynder
07. august 2007 - 10:58 #14
$foresp = mysql_query("SELECT adr, emne, tekst FROM rapport WHERE dato1 = 2007-08-01 07:31:50;");
or die(mysql_error()); gir:Parse error: parse error in c:\appserv\www\rungstedlund\rapport2.php on line 33
Avatar billede Slettet bruger
07. august 2007 - 11:00 #15
SELECT adr, emne, tekst FROM rapport WHERE dato1 = '2007-08-01 07:31:50'

datoen er her en streng og den skal i apostroffer
Avatar billede konder Nybegynder
07. august 2007 - 11:00 #16
MySQL Database Version 4.0.24
Avatar billede sw_red_6 Nybegynder
07. august 2007 - 11:01 #17
prøv det her i stedet for
$foresp = mysql_query("SELECT adr, emne, tekst FROM rapport WHERE dato1 = '2007-08-01 07:31:50'") or die(mysql_error());

Der skal ikke være en ; efter din mysql_query() og heller ikke inde i query'en

Desuden så er det rigtigt hvad daleif skriver, det er ikke PHP versionen men MySQL versionen der er interessant.
Avatar billede sw_red_6 Nybegynder
07. august 2007 - 11:02 #18
ahh derfor du ikke kan bruge DATE(dato1).. den er først med i MySQL v4.1.1
Avatar billede konder Nybegynder
07. august 2007 - 11:02 #19
("SELECT adr, emne, tekst FROM rapport dato1 = '2007-08-01 07:31:50'");gir osse
Parse error: parse error in c:\appserv\www\rungstedlund\rapport2.php on line 33
Avatar billede konder Nybegynder
07. august 2007 - 11:04 #20
Det jeg så gerne ville ha var kun dagen idags data, suk
Avatar billede Slettet bruger
07. august 2007 - 11:13 #21
prøv med:

date_format(dato1,"%Y-%m-%d")=curdate()

ved dog ikke om date_format er med i din version af MySQL
Avatar billede konder Nybegynder
07. august 2007 - 11:14 #22
sw red 6 -virker ok. Jeg har een post idag som jeg altså kan få frem med dato1 = '2007-08-07 07:15:01' men den viser ingen post med
$foresp = mysql_query("SELECT adr, emne, tekst FROM rapport WHERE dato1 = curdate()") or die(mysql_error());  men heller ingen fejlmelding.
Avatar billede Slettet bruger
07. august 2007 - 11:14 #23
du kan også tjekke om CURDATE er med

select CURDATE()
Avatar billede sw_red_6 Nybegynder
07. august 2007 - 11:14 #24
hmm du kunne prøve at bruge NOW()..
$foresp = mysql_query("SELECT adr, emne, tekst FROM rapport WHERE dato1 = NOW()") or die(mysql_error());
Avatar billede konder Nybegynder
07. august 2007 - 11:18 #25
daleif  hurra-nu virker det med: date_format(dato1,"%Y-%m-%d")=curdate()
Avatar billede sw_red_6 Nybegynder
07. august 2007 - 11:21 #26
nej, det vil ikke virke eftersom det ikke kommer til at finde noget for i dag med den..

prøv med det her i stedet for:
$dato_start = date('Y-m-d 00:00:00');
$dato_slut = date('Y-m-d 23:59:59');
$foresp = mysql_query("SELECT adr, emne, tekst FROM rapport WHERE dato1 BETWEEN $dato_start AND $dato_slut") or die(mysql_error());

Den skulle finde alt hvad der er for dags dato selvom det muligvis kan lade sig gøre som daleif skriver 07/08-2007 11:13:43

Du kan se hvad der er af funktion til dato og tid behandling i MySQL her:
http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html
Avatar billede konder Nybegynder
07. august 2007 - 11:21 #27
Kan jeg give jer 30 point hver?
Avatar billede sw_red_6 Nybegynder
07. august 2007 - 11:39 #28
jo, hvis du forhøjer pointene hvilket du kan gøre under funktioner øverst oppe under hvor dit navn står..

Vi skal så begge ligge et svar som du accepterer, men jeg synes nu ikke der er nogen grund til at forhøje pointene
Avatar billede Slettet bruger
07. august 2007 - 11:39 #29
du kan vist dele dem
Avatar billede konder Nybegynder
07. august 2007 - 11:49 #30
Hvis sw_red_6 osse lægger et svar, fordeler jeg dem.
Avatar billede sw_red_6 Nybegynder
07. august 2007 - 12:18 #31
OK et stk svar fra mig
Avatar billede konder Nybegynder
07. august 2007 - 14:09 #32
I skal ha`mange tak for hjælpen.
Avatar billede sw_red_6 Nybegynder
07. august 2007 - 14:26 #33
selv tak og tak for point :o)
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
Computerworld tilbyder specialiserede kurser i database-management

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