Pokud si chceš zachovat zbytky zdravého rozumu, tak další databázový sloupec s průměrnými hodnotami nezaváděj. Je to i v rozporu s normalizací databáze. Místo toho stačí sloupec s teplotami indexovat. Index odvede mnohem lepší práci.
měřím teplotu a zapisuji do databáze.
Ale občas se stane, že čidlo nahlásí poruchu a vypíše mi nesmyslné číslo 16777216°C, místo třeba22 °C.
Problém je v tom, že mi to rozhází zobrazení grafu. Do databáze zapisuji kařdých pět minut. Tak mě napadlo jestli by nešlo něco takového?
pokud je $teplota vyšší jak 100°C, tak uloží do $teplota
předchozí hodnotu zapsanou v databázi. Ale nevím co dosadit do vzorce.
Poradíte? Díky.
if ($teplota>100) {$teplota = předchozí hodnota v databázi ;}
Nebo nějaké jiné řešení?
něco takového?
$teplota_1 ="SELECT teploty FROM tab DESC LIMIT 1;";
if ($teplota>100) {$teplota=$teplota_1;}
Lepší by bylo takovou nesmyslnou hodnotu do databáze vůbec nezapsat. Pokud při vytváření grafu typu XY nějaká hodnota chybí, tak to zpravidla nevadí. V databázích je pro to vyhrazena (ne)hodnota NULL.
Nepřipadá mi to jako nesmysl. Kdybych měřil každou hodinu, ale měřím každých pět minut a chyba je jednou za cca 24hodin.
Přijde mi to naopak jako elegantní řešení :-)
Pokoušel jsem se tu (ne)hodnotu NULL nějak nasimulovat, co to udělá v grafu, ale navím jak ji zapsat do jednoho "okenka" v databazi.
Při vkládání nebo přepisování dáš místo 15 nebo 'řetězec' slovo NULL. Je to konstanta vyjadřující prázdnou hodnotu. Není to ani 0, ani prázdný řetězec, je to prostě NULL, tedy nic.