Avatar billede Slettet bruger
27. september 2011 - 14:55 Der er 4 kommentarer og
1 løsning

$nw between der ikke virker.

jeg har følgende data i en database tabel.


[r_ID] - [r_START] - [r_SLUT] - [r_OC] - [r_RUNDE] - [r_SEASON]
41     18-09-2011 16:00:00     20-09-2011 10:00:00     c     2     2011
42     20-09-2011 10:00:00     25-09-2011 16:00:00     o     3     2011
43     25-09-2011 16:00:00     27-09-2011 10:00:00     c     3     2011
44     27-09-2011 10:00:00     02-10-2011 16:00:00     o     4     2011
45     02-10-2011 16:00:00     04-10-2011 10:00:00     c     4     2011
46     04-10-2011 10:00:00     09-10-2011 16:00:00     o     5     2011
47     09-10-2011 16:00:00     11-10-2011 10:00:00     c     5     2011
48      11-10-2011 10:00:00    16-10-2011 16:00:00    o      6    2011
49     16-10-2011 16:00:00     18-10-2011 10:00:00     c     6     2011
50     18-10-2011 10:00:00     23-10-2011 16:00:00     o     7     2011
51     23-10-2011 16:00:00     25-10-2011 10:00:00     c     7     2011
52     25-10-2011 10:00:00     30-10-2011 16:00:00     o     8     2011
53     30-10-2011 16:00:00     04-11-2011 10:00:00     c     8     2011
54     04-11-2011 10:00:00     06-11-2011 16:00:00     o     9     2011


Jeg skal så finde ud af hvilken Runde og o/c vi har.
Det gør jeg ved at have en $now, der skal bære imellem r_START og r_SLUT:


date_default_timezone_set("Europe/Copenhagen");
$now = date("d-m-Y H:i:s");
$season = $_SESSION['season'];


$result = mysql_query("SELECT r_START, r_SLUT, r_OC, r_RUNDE, r_SEASON FROM Rundetid WHERE r_SEASON='$season' AND '$now' BETWEEN r_START AND r_SLUT");
if(mysql_num_rows($result) > 0)
{
//udtraekke variable fra soege-resultatet
$r_START = mysql_result($result, 0, 0);
$r_SLUT = mysql_result($result, 0, 1);
$r_OC = mysql_result($result, 0, 2);
$r_RUNDE = mysql_result($result, 0, 3);
}


Mit problem er så at selvom $now bliver udskrevet med rigtige dato og kl(har lige lavet en: 27-09-2011 14:49:55), så mener mit udtræk at vi er her:

52     25-10-2011 10:00:00     30-10-2011 16:00:00     o     8     2011


Det har virket ind til imorges kl 10.00 hvor den skulle skifte.
Det gjorde den også, bare 1 mdr for langt frem :S

r_RUNDE er så = 8
r_OC = o
Og det er helt forkert.
Det burde være
r_RUNDE = 4
r_OC = o


Hvad kan være skyld i dette?
Avatar billede majbom Novice
27. september 2011 - 16:39 #1
går ud fra at dine start- og slut-kolonner er datetime?

hvorfor så ikke bare bruge NOW() på mysql-serveren?

SELECT r_START, r_SLUT, r_OC, r_RUNDE, r_SEASON FROM Rundetid WHERE r_SEASON='$season' AND NOW() BETWEEN r_START AND r_SLUT


er faktisk lidt i tvivl om du kan gøre det den vej, ellers prøv med:

SELECT r_START, r_SLUT, r_OC, r_RUNDE, r_SEASON FROM Rundetid WHERE r_SEASON='$season' AND r_START < NOW() AND r_SLUT > NOW()
Avatar billede Slettet bruger
27. september 2011 - 22:27 #2
Det virker..
Jeg er bare træt af datetime. Måden dato og kl står på er møg træls.
Jeg vil have [dd-mm-åååå hh:mm:ss] eller [hh:mm:ss dd-mm-åååå]
Er der en måde man kan lave det om så man kan se det sådan?
Avatar billede Slettet bruger
27. september 2011 - 22:28 #3
Hov... Det skulle ikke være et svar.
Du må gerne poste et svar.
Avatar billede majbom Novice
28. september 2011 - 07:52 #4
jeg gemmer altid dato og tid i kolonner der er beregnet til det og formaterer indholdet hver gang det skal bruges, hvis det skal se "dansk" ud (eller anderledes).

det er så meget nemmere at bruge mysqls date-funktioner når man bruger de formater der er beregnet til tid og dato :)
Avatar billede majbom Novice
28. september 2011 - 09:18 #5
tfp :)
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