Keresés

Új hozzászólás Aktív témák

  • Brett001

    aktív tag

    válasz disy68 #16837 üzenetére

    Köszönöm a segítséget, és hogy felhívtad a figyelmem még az UTC-s időre is. :R Logikus - mint említettem volt - francia illető írta a scriptet, tehát ő az adatbázisát UTC-ben kezeli.
    Ha valami gondom lesz még, majd sikítok. :D

  • Brett001

    aktív tag

    Sziasztok!

    Először írok ide, és jelzem, hogy nem tanultam sem php, sem MySQL programozást, bár egy picit mindkettőből elsajátitottam autodidakta módon. Mondjuk 0,1 %- ot :)

    Nos röviden a helyzet az, hogy van egy meteorológiai állomásom, amihez van egy Weather Display (WD) nevű program ami usb-n keresztül le tudja a mért adatokat tölteni. Van hozzá egy olyan plug-in is amely képes az adatokat MySQL adatbázisba feltölteni. Nos csináltam a gépen egy webszervert (localhost) WAMP 2.4-el; phpmyadminnal létrehoztam az adatbázist, alá egy táblát és program szépen tölti is oda az adatokat. A neten a külföldi időjárás kedvelők oldalain pedig lehet kis kész php scripteket letölteni, amik ebből a WD programmal gyűjtött adatokból szép táblázatokat csinálnak, grafikonokat rajzolnak. Csak eddig elég béna grafikonos scripteket találtam. Most viszont egy francia csávó oldalán leltem egy nagyon jó php scriptet, ami szintén SQL adatbázisból dolgozik és a HighCharts segítségével nagyon látványos grafikonokat csinál. Csak a gond ott kezdődik , hogy ő más időjárás menedzselő progit használ. Az ő adatbázisában az időpont UNIX_TIMESTAMP formátumú és ennek megfelelően írta meg a scriptet. Az progim viszont az időpontot YYYYMMDDHHSS formában tölti fel az adatbázisba. :(

    Ez olyan script részlete, ami kirajzolja az elmúlt 48 óra hőmérsékleti stb. adatait.

    <?php
    // appel du script de connexion
    require("mysql_connect.php");
    // On récupère le timestamp du dernier enregistrement
    $sql="select max(datetime) from wx_data1";
    $query=mysql_query($sql);
    $list=mysql_fetch_array($query);

    // On détermine le stop et le start de façon à récupérer dans la prochaine requête que les données des dernières xx heures
    $stop=$list[0];
    $start=$stop-(86400*2);

    // Récupération des données sur les dernières 48 heures avec un tri ascendant sur le timestamp
    $sql = "SELECT datetime, temperature, current_windchill, dew_point_temperature, heat_index FROM wx_data1 where datetime >= '$start' and datetime <= '$stop' ORDER BY 1";
    $query=mysql_query($sql);
    $i=0;
    while ($list = mysql_fetch_assoc($query)) {
    if (date("I",time())==0) {
    $time[$i]=($list['datetime']+3600)*1000;
    }
    else {
    $time[$i]=($list['datetime']+7200)*1000;
    }

    $temperature[$i]=$list['temperature']*1;
    $current_windchill[$i]=$list['current_windchill']*1;
    $dew_point_temperature[$i]=$list['dew_point_temperature']*1;
    $heat_index[$i]=$list['heat_index']*1;
    $i++;
    }
    ?>

    A lényeg ugye a $sql="select max(datetime) from wx_data1"; -nál a datetime oszlop neki UNIX nekem meg YYYYMMHHDDSS formátumú.
    Milyen php parancsot kell itt módosítani, hogy ne UNIX időt várjon bejövő adatnak? Gondolom az utána jövő szorzás összeadás stb. is a UNIX dátum formátumra van írva.
    Vagy gondolom lehet olyant is csinálni, hogy beírni egy normál időt kiolvasó parancsot, aztán azt átkonvertálni unix_timestamp-pá, amiből tovább dolgozik a script.

    Bocs a hosszért, meg ha nem megfelelő kifejezéseket használtam. :B Lamer vagyok na! :D

    A segítséget előre is köszönöm. :)

Új hozzászólás Aktív témák