From d604e7182f7af4785e5080ea17c931aceedbdf62 Mon Sep 17 00:00:00 2001 From: Philip <mail@philjak.de> Date: Fri, 15 Jul 2016 11:03:58 +0200 Subject: [PATCH] Variable Table Name Marker fix Better refresh --- web/admin.php | 14 +++++++------- web/api/lastUpdate.php | 4 +++- web/details.php | 6 +++--- web/graph.php | 4 ++-- web/include/config.php | 9 ++++++++- web/index.php | 17 +++++++++++------ 6 files changed, 34 insertions(+), 20 deletions(-) diff --git a/web/admin.php b/web/admin.php index f03344f..f352ec1 100644 --- a/web/admin.php +++ b/web/admin.php @@ -57,30 +57,30 @@ if (!$loggedIn){ if (isset($_GET["allow"])){ $allow = $_GET["allow"]; - $query = "SELECT * FROM tbl_unregistered WHERE id = ".$allow; + $query = "SELECT * FROM ".$TBL_UNREGISTERED." WHERE id = ".$allow; $result = $link->query($query); while($row = $result->fetch_assoc()) { $clientAddress = $row["clientAddress"]; $exist = true; } if ($exist){ - $query = "INSERT INTO tbl_addresses(address) VALUES('".$clientAddress."')"; + $query = "INSERT INTO ".$TBL_ADDRESSES."(address) VALUES('".$clientAddress."')"; $result = $link->query($query); - $query = "DELETE FROM tbl_unregistered WHERE id = ".$allow; + $query = "DELETE FROM ".$TBL_UNREGISTERED." WHERE id = ".$allow; $result = $link->query($query); } }elseif (isset($_GET["remove"])) { $remove = $_GET["remove"]; - $query = "SELECT * FROM tbl_addresses WHERE id = ".$remove; + $query = "SELECT * FROM ".$TBL_ADDRESSES." WHERE id = ".$remove; $result = $link->query($query); while($row = $result->fetch_assoc()) { $exist = true; } if ($exist){ - $query = "DELETE FROM tbl_addresses WHERE id = ".$remove; + $query = "DELETE FROM ".$TBL_ADDRESSES." WHERE id = ".$remove; $result = $link->query($query); } @@ -116,7 +116,7 @@ if (!$loggedIn){ <?php $sql = new SQL(); $link = $sql->getLink(); - $query = "SELECT * FROM tbl_unregistered"; + $query = "SELECT * FROM ".$TBL_UNREGISTERED.""; $result = $link->query($query); while($row = $result->fetch_assoc()) { @@ -153,7 +153,7 @@ if (!$loggedIn){ <?php $sql = new SQL(); $link = $sql->getLink(); - $query = "SELECT * FROM tbl_addresses"; + $query = "SELECT * FROM ".$TBL_ADDRESSES.""; $result = $link->query($query); while($row = $result->fetch_assoc()) { diff --git a/web/api/lastUpdate.php b/web/api/lastUpdate.php index 3657251..5d9296a 100644 --- a/web/api/lastUpdate.php +++ b/web/api/lastUpdate.php @@ -4,10 +4,12 @@ if (isset($_POST["param"])){ require_once("../classes/SQL.php"); +include("../include/config.php"); + $sql = new SQL(); $link = $sql->getLink(); - $query = "SELECT tbl_data.id as id, tbl_parameter.param as param, tbl_data.value as value, DATE_FORMAT(tbl_data.timestamp, '%d.%m.%Y %H:%i:%s') as date FROM (tbl_register INNER JOIN tbl_parameter ON tbl_register.id = tbl_parameter.fid_register) INNER JOIN tbl_data ON tbl_parameter.id = tbl_data.fid_parameter WHERE tbl_data.fid_parameter = ".$_POST["param"]." ORDER BY tbl_data.id DESC LIMIT 1"; + $query = "SELECT ".$TBL_DATA.".id as id, ".$TBL_PARAMETER.".param as param, ".$TBL_DATA.".value as value, DATE_FORMAT(".$TBL_DATA.".timestamp, '%d.%m.%Y %H:%i:%s') as date FROM (".$TBL_REGISTER." INNER JOIN ".$TBL_PARAMETER." ON ".$TBL_REGISTER.".id = ".$TBL_PARAMETER.".fid_register) INNER JOIN ".$TBL_DATA." ON ".$TBL_PARAMETER.".id = ".$TBL_DATA.".fid_parameter WHERE ".$TBL_DATA.".fid_parameter = ".$_POST["param"]." ORDER BY ".$TBL_DATA.".id DESC LIMIT 1"; $result = $link->query($query); while($row = $result->fetch_assoc()) { diff --git a/web/details.php b/web/details.php index 5066d5b..d30f56a 100644 --- a/web/details.php +++ b/web/details.php @@ -9,7 +9,7 @@ $sql = new SQL(); $link = $sql->getLink(); if (isset($_GET["param"])){ - $query = "SELECT * FROM (tbl_register INNER JOIN tbl_parameter ON tbl_register.id = tbl_parameter.fid_register) INNER JOIN tbl_data ON tbl_parameter.id = tbl_data.fid_parameter WHERE tbl_data.fid_parameter = ".$_GET["param"]." LIMIT 1"; + $query = "SELECT * FROM (".$TBL_REGISTER." INNER JOIN ".$TBL_PARAMETER." ON ".$TBL_REGISTER.".id = ".$TBL_PARAMETER.".fid_register) INNER JOIN ".$TBL_DATA." ON ".$TBL_PARAMETER.".id = ".$TBL_DATA.".fid_parameter WHERE ".$TBL_DATA.".fid_parameter = ".$_GET["param"]." LIMIT 1"; $result = $link->query($query); while($row = $result->fetch_assoc()) { @@ -57,7 +57,7 @@ if (isset($_GET["param"])){ <tbody> '; - $query = "SELECT count(*) as amount FROM tbl_data WHERE tbl_data.fid_parameter = ".$_GET["param"]; + $query = "SELECT count(*) as amount FROM ".$TBL_DATA." WHERE ".$TBL_DATA.".fid_parameter = ".$_GET["param"]; $result = $link->query($query); while($row = $result->fetch_assoc()) { $amount = $row["amount"]; @@ -77,7 +77,7 @@ if (isset($_GET["param"])){ - $query = "SELECT tbl_data.id as id, tbl_parameter.param as param, tbl_data.value as value, DATE_FORMAT(tbl_data.timestamp, '%d.%m.%Y %H:%i:%s') as date FROM (tbl_register INNER JOIN tbl_parameter ON tbl_register.id = tbl_parameter.fid_register) INNER JOIN tbl_data ON tbl_parameter.id = tbl_data.fid_parameter WHERE tbl_data.fid_parameter = ".$_GET["param"]." ORDER BY tbl_data.id DESC LIMIT ".$TABLELINESPERPAGE." OFFSET ".(($page-1)*$TABLELINESPERPAGE); + $query = "SELECT ".$TBL_DATA.".id as id, ".$TBL_PARAMETER.".param as param, ".$TBL_DATA.".value as value, DATE_FORMAT(".$TBL_DATA.".timestamp, '%d.%m.%Y %H:%i:%s') as date FROM (".$TBL_REGISTER." INNER JOIN ".$TBL_PARAMETER." ON ".$TBL_REGISTER.".id = ".$TBL_PARAMETER.".fid_register) INNER JOIN ".$TBL_DATA." ON ".$TBL_PARAMETER.".id = ".$TBL_DATA.".fid_parameter WHERE ".$TBL_DATA.".fid_parameter = ".$_GET["param"]." ORDER BY ".$TBL_DATA.".id DESC LIMIT ".$TABLELINESPERPAGE." OFFSET ".(($page-1)*$TABLELINESPERPAGE); $result = $link->query($query); while($row = $result->fetch_assoc()) { diff --git a/web/graph.php b/web/graph.php index 492efaf..384738f 100644 --- a/web/graph.php +++ b/web/graph.php @@ -36,7 +36,7 @@ if (isset($_GET["param"])){ // Reduziere Anzahl der Daten auf X-Achse // 10 Prozent der Gesamtanzahl sind die Marken, die zwischen der ersten und letzten Marke hinzugefügt werden sollen. // Beispiel: 20 Messungen => - if (count($dataX) > 3){ + if (count($dataX) > 2){ // 10% an weiteren Markern // Bestimme 10 Prozent. Beispiel: 20 Messungen => 2 => Aufteilung in 3 gleichgroße Teile @@ -48,7 +48,7 @@ if (isset($_GET["param"])){ for ($i = 1; $i<count($dataX)-1; $i++){ if ($showDetails){ if ($i == $marker){ - $marker = $marker + $anzahl; + $marker = $marker + $anzahl; }else{ $dataX[$i] = ""; } diff --git a/web/include/config.php b/web/include/config.php index cf02851..858bd96 100644 --- a/web/include/config.php +++ b/web/include/config.php @@ -3,15 +3,22 @@ $TBL_PARAMETER = "tbl_parameter"; $TBL_REGISTER = "tbl_register"; $TBL_DATA = "tbl_data"; +$TBL_ADDRESSES = "tbl_addresses"; +$TBL_UNREGISTERED = "tbl_unregistered"; + $GRAPHPOINTS = -50; $THUMBSIZE = 4; // 1 min, 12 max $TABLELINESPERPAGE = 50; // Wenn letzte Nachricht älter als X Stunden, wird das Gerät aus dem Dashboard entfernt -$DEVICEOFFLINETIME = 10; +$DEVICEOFFLINETIME = 24; + +$REFRESHINTERVAL = 25; // +++++++++++++++++ DONT DO ANY CHANGES AFTER THIS LINE ++++++++++++++++++ + $DEVICEOFFLINETIME = $DEVICEOFFLINETIME * 60; +$REFRESHINTERVAL = $REFRESHINTERVAL * 1000; ?> \ No newline at end of file diff --git a/web/index.php b/web/index.php index 45705ca..5242738 100755 --- a/web/index.php +++ b/web/index.php @@ -17,10 +17,8 @@ $sql = new SQL(); $link = $sql->getLink(); $graphs = array(); -$query = "SELECT clientAddress, name, max(tbl_data.timestamp) as date, fid_register FROM tbl_addresses INNER JOIN ((tbl_register INNER JOIN tbl_parameter ON tbl_register.id = tbl_parameter.fid_register) INNER JOIN tbl_data ON tbl_parameter.id = tbl_data.fid_parameter) ON tbl_addresses.address = tbl_register.clientAddress WHERE fid_register IN (SELECT max(id) FROM tbl_register group by clientAddress) AND tbl_data.timestamp > (NOW() - INTERVAL ".$DEVICEOFFLINETIME." MINUTE) group by fid_register"; - - - +// Alle Clients mit dem Timestamp ihres zuletzt gesendeten Parameter +$query = "SELECT clientAddress, name, max(".$TBL_DATA.".timestamp) as date, fid_register FROM ".$TBL_ADDRESSES." INNER JOIN ((".$TBL_REGISTER." INNER JOIN ".$TBL_PARAMETER." ON ".$TBL_REGISTER.".id = ".$TBL_PARAMETER.".fid_register) INNER JOIN ".$TBL_DATA." ON ".$TBL_PARAMETER.".id = ".$TBL_DATA.".fid_parameter) ON ".$TBL_ADDRESSES.".address = ".$TBL_REGISTER.".clientAddress WHERE fid_register IN (SELECT max(id) FROM ".$TBL_REGISTER." group by clientAddress) AND ".$TBL_DATA.".timestamp > (NOW() - INTERVAL ".$DEVICEOFFLINETIME." MINUTE) group by fid_register"; $result = $link->query($query); while($row = $result->fetch_assoc()) { @@ -35,7 +33,8 @@ while($row = $result->fetch_assoc()) { <div class="row">'; - $query2 = "SELECT type, fid_parameter, param, value, DATE_FORMAT(tbl_data.timestamp, '%d.%m.%Y %H:%i:%s') as date FROM (tbl_register INNER JOIN tbl_parameter ON tbl_register.id = tbl_parameter.fid_register) INNER JOIN tbl_data ON tbl_parameter.id = tbl_data.fid_parameter WHERE tbl_register.id = ".$row["fid_register"]." AND tbl_data.id IN (SELECT max(id) FROM tbl_data group by fid_parameter) ORDER BY tbl_parameter.id"; + // Alle Parameter und Werte zu einem konkreten Client (von der äußeren Schleife kommend) + $query2 = "SELECT type, fid_parameter, param, value, DATE_FORMAT(".$TBL_DATA.".timestamp, '%d.%m.%Y %H:%i:%s') as date FROM (".$TBL_REGISTER." INNER JOIN ".$TBL_PARAMETER." ON ".$TBL_REGISTER.".id = ".$TBL_PARAMETER.".fid_register) INNER JOIN ".$TBL_DATA." ON ".$TBL_PARAMETER.".id = ".$TBL_DATA.".fid_parameter WHERE ".$TBL_REGISTER.".id = ".$row["fid_register"]." AND ".$TBL_DATA.".id IN (SELECT max(id) FROM ".$TBL_DATA." group by fid_parameter) ORDER BY ".$TBL_PARAMETER.".id"; $result2 = $link->query($query2); while($row2 = $result2->fetch_assoc()) { @@ -69,6 +68,8 @@ while($row = $result->fetch_assoc()) { } + +// Refreshfunktionen echo ' <script> setInterval(function() { @@ -87,8 +88,12 @@ setInterval(function() { $("#v'.$param.'").text(response.value); });'; } + + if (count($graphs) == 0){ + echo 'location.reload();'; + } echo ' -}, 25000); +}, '.$REFRESHINTERVAL.'); </script> '; ?> -- GitLab