Sääasema linuxille

Aloittaja Jippe, sunnuntai, 05.12.2010, 19:49

« edellinen - seuraava »

0 Jäsenet ja 3 Vieraat katselee tätä aihetta.

Jippe

Siis php:llä luetaan mysqlia ja tulostetaan sivulle?
(Silloin kun 286 oli kova kone, visual basic ja pascal uusia juttuja, olin ajan hermolla..  :o )

weatherc

LainaaSiis php:llä luetaan mysqlia ja tulostetaan sivulle?

Jeps. :)
Esimerkkinä jos haluat stand-alone-raportin, luet php:llä sql:än ja tulostat noaaraportin näköisen taulukon <pre>-tagin avulla.
Tai tallennat cachehen .txt-filun samoilla datoilla. .txt-filulla on se hyöty että sen voi sitten aikatarkistaa ettei tehdä uutta muutoin kun jos se on liian vanha, tai kerran päivässä tai jotain.
En ole koskaan kokeillut sitä tehdä mutta ainakin teoriassa pitäisi toimia.

Jippe

$Temp = sprintf("%01.1f", CtoF($Temp, $temp_prec));
Miten tuosta rivistä poistetaan funktio CtoF? Se muuttaa celciukset fahrenhaiteiksi..

Työn alla on parse_clientraw.php v 2.0 -skripti, Copyright (C) 2005 Anole Computer Services, LLC
Yritän houkutella sitä puhumaan metreissä  ::)

weatherc

$Temp = sprintf("%01.1f", $Temp);

;D

Jippe

No prkl.  :D
Jos haluan säilyttää muuttujan $temp_prec, joka määrittää desimaalien määrän..
$Temp = sprintf("%01.1f", $Temp, $temp_prec);
Vai pitääkö sekaan heittää lisää sulkuja?  :o

E: tarkemmin ajatellen eihän sillä mitään tee kun laskut jää pois :P

weatherc

LainaaE: tarkemmin ajatellen eihän sillä mitään tee kun laskut jää pois

Aivan  ;D
sprintf:ssä saa lisää desimaaleja muistaakseni muuttamalla 1:sen esim. 2:ksi. sprintf näyttää aina halutun määrän desimaaleja, vaikka arvo olisi tasan, kuten 2.0 mitä ei taas round() tee.

Se mitä php:ssä on se tärkeä tuossa on se että sulkujen määrä täsmää ettei jää mitään "auki", esim tämä on väärin:
$Temp = sprintf("%01.1f", $Temp));

Jippe

Alkuperäinen ensin ja muutettu perässä. Voiko toimia? Mulla näyttää omat sadetiedot nollaa, niin on huono testata.
Rivit joiden lopussa on '* 60', '* 60' piti poistaa ettei tulisi erroria.

// RAIN

// current

(float)$RainToday = "$data[7]";

$RainToday = sprintf("%01.2f", MMtoINCHES($RainToday, $rain_prec));


(float)$RainMonth = "$data[8]";

$RainMonth = sprintf("%01.2f", MMtoINCHES($RainMonth, $rain_prec));


(float)$RainYear = "$data[9]";

$RainYear = sprintf("%01.2f", MMtoINCHES($RainYear, $rain_prec));



(float)$RainRateCurrent = "$data[10]";

$RainRateCurrent = MMtoINCHES($RainRateCurrent, 6);

$RainRateCurrent = sprintf("%01.2f", $RainRateCurrent * 60);


// RAIN

// current

(float)$RainToday = "$data[7]";

$RainToday = sprintf("%01.2f", $RainToday);


(float)$RainMonth = "$data[8]";

$RainMonth = sprintf("%01.2f", $RainMonth);


(float)$RainYear = "$data[9]";

$RainYear = sprintf("%01.2f", $RainYear);


(float)$RainRateCurrent = "$data[10]";

$RainRateCurrent = sprintf("%01.2f", $RainRateCurrent);

weatherc

Ihan ok:lta näyttää. Jos tulos näyttää samaa mitä oma asemasi niin silloihan se toimii, jollei ota huomioon mahdollisia laskuja jos arvo on nollassa.
Nuo voi vieleä tiivistääkin:

(float)$RainToday = sprintf("%01.2f", $data[7]);
(float)$RainMonth = sprintf("%01.2f", $data[8]);
(float)$RainYear = sprintf("%01.2f", $data[9]);
(float)$RainRateCurrent = sprintf("%01.2f", $data[10]);


;D

Jippe

Nyt tämä alkaa hahmottua, kiitos! Tiivistys selkeyttää ja vähentää rivejä. Tuulirivit joissa solmut muutetaan m/s, täytyy jättää ennalleen.
$Date = $data[74];
Tulostaa päiväyksen muodossa 25/12/2010, miten kauttaviivat saa muutettua pisteiksi? Muutin jo kaikkialle muualle päiväyksen muotoon 25.12.2010, tuo rivi jäi kummittelemaan  8)

http://www.valimo.info/weather/test.php

weatherc

Simppeli str_replace:

$Date = str_replace("/",".",$data[74]);

;D