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