<?php /* NEW CALCULATION INSERT TO DB */ //check input if (!isset($_POST['name'], $_POST['formula'], $_POST['unit'])) { die; } //process input $name = mysql_real_escape_string($_POST['name']); $form = mysql_real_escape_string($_POST['formula']); $unit = mysql_real_escape_string($_POST['unit']); //check for duplicates in name and formula $duplicates = current(mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM calculations WHERE name='{$name}'"))); if ($duplicates > 0) { die("ERROR! This calculation name already exists!"); } $duplicates = current(mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM calculations WHERE formula='{$form}'"))); if ($duplicates > 0) { die("ERROR! This calculation formula already exists!"); } //check if formula is valid include "calculations_library.php"; $ids = idsPerFormula($form); $result = applyFormula($form, $ids); //if it's incorrect, this function will die() //all is ok! insert calculation query $sql = "INSERT INTO calculations (name,formula,unit) VALUES ('{$name}','{$form}','{$unit}')"; mysql_query($sql) or die(mysql_error()); //success & go to new device echo "<b>New Calculation '{$name}' Inserted Correctly!</b> "; $id = current(mysql_fetch_array(mysql_query("SELECT MAX(id) FROM calculations"))); echo "<a href=calculation.php?id={$id}>VIEW</a>";
} //WHERE device_$id is NOT NULL $notNull = []; foreach ($ids as $id_device) { $notNull[] = "al.device_{$id_device} IS NOT NULL"; } $notNull = implode(" AND ", $notNull); //final SQL $sql = " \t\n\t\t\t\tSELECT * FROM (\n\t\t\t\t\tSELECT date," . implode(",", $cols) . "\n\t\t\t\t\tFROM readings \n\t\t\t\t\t{$dateFilter}\n\t\t\t\t\tGROUP BY date \n\t\t\t\t\tORDER BY date DESC\n\t\t\t\t) al \n\t\t\t\tWHERE ({$notNull})\n\t\t\t\tORDER BY date ASC\n\t\t\t"; //execute $res = mysql_query($sql) or die(mysql_error()); $results = mysql_num_rows($res); echo "<script>document.getElementById('results').innerHTML='{$results}'</script>"; while ($row = mysql_fetch_array($res)) { $date = $row['date']; echo "<tr><td>{$date}"; $values = []; //values in this iteration foreach ($ids as $id_device) { $value = $row["device_{$id_device}"]; $values[] = $value; $value = round($value, 4); echo "<td>{$value}"; } echo "<td style=background:#af0>" . round(applyFormula($formula, $values), 4); } ?> </table> <!--TIME--><br><?php printf("Page generated in %f seconds", microtime(true) - $start);