Sida 1 av 1

Slutar hämta data vid midnatt.

Postat: 03 jan 2012, 22:45
av bjornsson
Vet inte riktigt vart felet kan vara men jag kör detta i en php fil.

Kod: Markera allt

$devices[2]["Vindhastighet m/s"][0] = "SelECT ROUND(gstspd,1) as result FROM wx_data ORDER BY time DESC LIMIT 1";

även testat denna som jag använder för att plocka ur tempen från mitt 1-wire nät och då funkar det, det som jag försöker hämta nu är sparat från weatherDisplay men borde ju inte spela någon roll tycker jag.

Kod: Markera allt

	$devices[2]["Vindhastighet m/s"][0] = "SelECT ROUND(gstspd,1) FROM `wx_data` ORDER BY `time` DESC LIMIT 1";
Den plockar det senaste värdet ur databasen, men efter midnatt så slutar den plocka det nyaste utan tar det som skrevs i databasen närmast strax före midnatt.

Vet inte riktigt vart vart jag ska börja leta då jag oftast kör klipp&klista och gissar mig fram :mrgreen:





Så här ser DLLen ut.

Kod: Markera allt

CREATE TABLE `wx_data` (
  `date` date NOT NULL DEFAULT '0000-00-00',
  `time` time NOT NULL DEFAULT '00:00:00',
  `temp` float NOT NULL DEFAULT '0',
  `maxtemp` float NOT NULL DEFAULT '0',
  `mintemp` float NOT NULL DEFAULT '0',
  `humidity` float NOT NULL DEFAULT '0',
  `gstspd` float NOT NULL DEFAULT '0',
  `windspeed` float NOT NULL DEFAULT '0',
  `vindriktning` float NOT NULL DEFAULT '0',
  `molnhojd` float NOT NULL DEFAULT '0',
  `Server` float NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Så här ser den ut där det funkar.

Kod: Markera allt

CREATE TABLE `ute` (
  `index` bigint(20) NOT NULL AUTO_INCREMENT,
  `TimeStamp` datetime NOT NULL,
  `Temperature` double NOT NULL,
  PRIMARY KEY (`index`)
) ENGINE=InnoDB AUTO_INCREMENT=743 DEFAULT CHARSET=latin1;

Re: Slutar hämta data vid midnatt.

Postat: 03 jan 2012, 23:27
av daromer
Om du tänker efter lite på vad det är du sorterar efter så ser du felet :D

DU sorterar efter Time och det kommer bli lite galet då.
Du måste sortera på tiden och datumet. "order by date,time"

Din tabell för temp är ju av formate datetime. Så där funkar det bättre.
Sedan är båda dina sqler du skrev identiska så vet inte hur du kan få olika värden på dem?

Re: Slutar hämta data vid midnatt.

Postat: 04 jan 2012, 10:26
av bjornsson
Hur ska jag lägga in det då?

För som jag lägger in det nu får jag "SQL error: Unknown column 'date,time' in 'order clause'"

Kod: Markera allt

$devices[2]["Vindriktning°"][0] = "SelECT ROUND(Vindriktning,1) as result FROM `wx_data` ORDER BY `date,time` DESC LIMIT 1";
Men tar jag bort dom två"``" så får jag ett värde men det som skrevs senast före midnatt
byter jag plats på date,time till time,date så tar han det som är första värdet för idag.

Så det jag gjorde var istället att jag kollade hur Dllen ser ut för den som funkar och la då till "`index` bigint(20) NOT NULL AUTO_INCREMENT,"
En index som räknar från 1 och uppåt för varje nya rad i databasen.

Så när den sur ut så här då plockar den det senaste värdet ut databasen.

Kod: Markera allt

$devices[2]["Vindriktning°"][0] = "SelECT ROUND(Vindriktning,1) as result FROM `wx_data` ORDER BY `index` DESC LIMIT 1";


Vet inte om det är "rätt" men det funkar ju för stunden iaf :P

Re: Slutar hämta data vid midnatt.

Postat: 04 jan 2012, 18:57
av daromer
Ja det funkar också att göra.

http://dev.mysql.com/doc/refman/5.0/en/ ... ation.html

Där har du syntaxen för order by annars.