Browse code

Create grafisch_tabelle.php

Stefan Höhn authored on11/09/2013 21:35:06
Showing1 changed files

1 1
new file mode 100644
... ...
@@ -0,0 +1,116 @@
1
+/variblen
2
+$ro = 0;
3
+//mysql-daten
4
+$host = "rdbms.strato.de";
5
+$user = "user";
6
+$passwort = "pw";
7
+$datenbank = "DB1234";
8
+$tabelle = "watt";
9
+
10
+//Datei vom Arduino mit Stromzähler wird ausgelesen
11
+$watt_lesen = file_get_contents("http://untergang.homelinux.net:81");
12
+ 
13
+//den Wert in eine Datei schreiben watt.inc
14
+ 
15
+$handle = fopen ("/absoluter_Pfad/htdocs/mambo/mosaddphp/watt.inc", w);
16
+fwrite ($handle, $watt_lesen);
17
+fclose ($handle);
18
+
19
+$link = mysql_connect($host, $user, $passwort);
20
+//if (!$link) {
21
+//    die('Verbindung schlug fehl: ' . mysql_error());
22
+//}
23
+// echo 'Erfolgreich verbunden';
24
+
25
+mysql_select_db($datenbank , $link); 
26
+
27
+ //echo $watt_lesen;
28
+ //das Wort Watt wird entfernt
29
+ $watt_ohne_bz = strcspn($watt_lesen,"Watt");
30
+ //echo $watt_ohne_bz;
31
+ $watt_wert = substr($watt_lesen,0,$watt_ohne_bz);
32
+ 
33
+ // Wert in Tabelle einfügen (ID,Wert,Datum)
34
+ mysql_query("INSERT INTO `watt` VALUES (0,$watt_wert, NOW())");
35
+  
36
+ // Abfrage Datenbank 
37
+ $result = mysql_query("SELECT id,watt,zeit FROM watt ORDER BY `zeit` DESC LIMIT 0, 10");
38
+
39
+ while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
40
+  {
41
+	  // warum 2 getrennte arrays?
42
+  $datenr[$ro] = ($row["watt"]);
43
+  $zeitro[$ro] = ($row["zeit"]);
44
+  
45
+  $ro++;
46
+  }
47
+ //$datenr: Reihenfolge wird vertauscht wegen Darstellung in Tabelle
48
+ //$daten ist das array was für das Diagramm benutzt wird.
49
+ $daten = array_reverse($datenr);
50
+ $zeiten = array_reverse($zeitro);
51
+mysql_free_result($result);
52
+mysql_close($link);
53
+
54
+/
55
+// PNG-Grafik definieren
56
+// header("Content-type: image/png");
57
+
58
+// Breite/Höhe des Diagramm
59
+$imgBreite=250;
60
+$imgHoehe=250;
61
+//  Schriftart liegt im selben Ordner
62
+$font='arial.ttf';
63
+
64
+// Image-Objekt erzeugen und Farben definieren
65
+$bild = imagecreatetruecolor($imgHoehe, $imgBreite);
66
+// $bild=imagecreate($imgHoehe, $imgBreite); ...truecolor wegen Schriftfunktion
67
+$farbeWeiss=imagecolorallocate($bild, 255, 255, 255);
68
+$farbeGrau=imagecolorallocate($bild, 192, 192, 192);
69
+$farbeBlau=imagecolorallocate($bild, 0, 150, 255);
70
+$farbeHellblau=imagecolorallocate($bild, 0, 200, 255);
71
+//schwarz für die Schrift
72
+$black=imagecolorallocate($bild, 0, 0, 0);
73
+
74
+imagefilledrectangle($bild, 0, 0, $imgHoehe, $imgBreite, $farbeWeiss);
75
+
76
+// Rand für die Grafik erzeugen
77
+imageline($bild, 0, 0, 0, 250, $farbeGrau);
78
+imageline($bild, 0, 0, 250, 0, $farbeGrau);
79
+imageline($bild, 249, 0, 249, 249, $farbeGrau);
80
+imageline($bild, 0, 249, 249, 249, $farbeGrau);
81
+
82
+
83
+// Raster erzeugen
84
+// Weil der Zähler i$ bei 1 losgeht diese Zeile
85
+imagettftext($bild, 10, 90, 25, 120, $black, $font,$zeiten[0]);
86
+
87
+for ($i=1; $i<count($daten); $i++){
88
+    imageline($bild, $i*25, 0, $i*25, 250, $farbeGrau);
89
+    //hier wird das Datum geschrieben ..Parameter 90 = hochkant
90
+    imagettftext($bild, 10, 90,($i+1)*25, 120, $black, $font,$zeiten[$i]);
91
+    imageline($bild, 0, $i*25, 250, $i*25, $farbeGrau);
92
+}
93
+
94
+// Liniendiagramm erzeugen
95
+//for ($i=0; $i<count($daten); $i++){
96
+//imageline($bild, $i*25, (250-$daten[$i]),
97
+//    ($i+1)*25, (250-$daten[$i+1]), $farbeBlau);
98
+//}
99
+
100
+
101
+// Säulendiagramme erzeugen
102
+for ($i=0; $i<count($daten); $i++){
103
+    imagefilledrectangle($bild, $i*25, (250-$daten[$i]),
104
+    ($i+1)*25, 250, $farbeBlau);
105
+    imagefilledrectangle($bild, ($i*25)+1,
106
+    (250-$daten[$i])+1,
107
+    (($i+1)*25)-5, 248, $farbeHellblau);
108
+}
109
+// Diagramm ausgeben und Grafik
110
+imagepng($bild, 'watttabelle.png');
111
+// aus dem Speicher entfernen
112
+imagedestroy($bild);
113
+
114
+//  cronscript:
115
+// /bin/php ./dawosist/watt2.php ; cd  ./mambo/mosaddphp/ ; date +'%H:%M Uhr am %d.%m.%Y' >watt-date.inc
116
+?>