WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   mysql - hämta endast aktuell månad (https://www.wn.se/forum/showthread.php?t=21064)

Cos 2007-05-05 09:18

Kod:

$events = $db->query ("SELECT UNIX_TIMESTAMP() AS dateline, event, customfields, dateline_from, eventid, title
              FROM emoevent
              WHERE calendarid = 1 AND dateline_from >= UNIX_TIMESTAMP()

              ORDER BY dateline_from");

Där är sql koden, hur fixar man så att den endast hämtar från aktuell månad?

dateline_from = när eventet sker.

melin 2007-05-05 09:50

med aktuell månad avser du de senaste 30 dagarna eller för (just nu då) maj?

oller 2007-05-05 10:17

Kod:

SELECT DATE_FORMAT(dateline_from, '%m') FROM ...;
eller
Kod:

SELECT MONTH(dateline_from) FROM ...

Cos 2007-05-05 10:51

Kanske var lite otydlig. Ska ha så att man kan få fram alla events som sker en speciell månad.

Just nu visas alla events för hela året , men eftersom folk lägger in mer och mer events så vill jag dela upp det så att man kan få fram det månadsvis istället.

Vi säger så här då: om jag vill få fram endast de events som sker i juni månad, hur gör jag då?

totoo 2007-05-05 11:12

vadå, du kan väl mata in två värden till din query?
liksom

$query = "select * from news where date > $förstaDagen AND date < $sistaDagen";

de två variablerna får du fram via datefunktionen i php... eller så använder man mysqls datumvariabel, men den hatar jag och behärskar för den delen inte. :)

Cos 2007-05-05 13:52

Ok, har testat lite att göra på detta sätt:

WHERE calendarid = 1 AND dateline_from > UNIX_TIMESTAMP(1180670400) < UNIX_TIMESTAMP(1183262400) men utan framgång. (fyi, inte hela sql koden)

Fick tag i på en timestamp converter http://corz.org/public/scripts/php/s...ltime=20070631

Några fler ideer kanske?

totoo 2007-05-05 14:03

UNIX_TIMESTAMP(1180670400) alltså det innanför parantesen är ju redan unix timestamp.

Frågan är - är dateline_from i ett sådant format?

Oavsett vilket är din ifsats felkonstruerad.

Såhär ser din ut

dateline_from > UNIX_TIMESTAMP(1180670400) < UNIX_TIMESTAMP(1183262400)

såhär ska den se ut

dateline_from > UNIX_TIMESTAMP(1180670400) AND dateline_from < UNIX_TIMESTAMP(1183262400)

Med eller utan UNIX_TIMESTAMP() men den borde vara helt onödig, samt kanske också att den orsakar problem

Cos 2007-05-05 14:12

Ahaaa! Nuuu förstår jag! Jamen, va enkelt!!

ha. de funka. Tack så mycket för den goa hjälpen!

Simma lugnt.


Alla tider är GMT +2. Klockan är nu 08:03.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson