Hallo in die Runde,
ich habe folgende MySQL Abfrage
Dies liefert mir folgendes Ergebnis:
usw.
Jetzt benötige ich die Daten aber in einer Json Tabelle in folgender Struktur
Ich habe es mit folgenden Code probiert allerdings sind da einige Fehler enthalten.
Kann mir hier bitte eine Weiterhelfen?
Hintergrund:
Ich möchte gerne meine gemessene Temperaturen in OpenHab mit Hilfe von Google Charts anzeigen lassen und dies Verlangt die Daten halt in diesem Format.
Vielen Dank schon mal für die Hilfe
Viele Grüße
Torsten
ich habe folgende MySQL Abfrage
Code:
Select avg(Value) as Mittelwert, Date_Format(Time,'%m') as Monat, Date_Format(Time, '%Y') as Jahr From Item1 Group By Monat, Jahr
Mittelwert | Monat | Jahr |
2,541 | 1 | 2018 |
2,991 | 1 | 2019 |
4,157 | 2 | 2018 |
5,174 | 2 | 2019 |
4,78 | 3 | 2018 |
7,485 | 3 | 2019 |
Jetzt benötige ich die Daten aber in einer Json Tabelle in folgender Struktur
Monat | 2018 | 2019 |
1 | 2,541 | 2,991 |
2 | 4,157 | 5,174 |
3 | 4,78 | 7,485 |
PHP-Code:
<?php
$rows = array();
$table = array();
$table ['cols'] = array(
array('Monat' => 'Monat', 'type' => 'string'),
array('Jahr' => 'Jahr', 'type' => 'string'),
array('Mittelwert' => 'Mittelwert', 'type' => 'number')
);
error_reporting('E_ALL');
echo "TEST";
$pdo = new PDO('mysql:host=localhost;dbname=openhab', 'web', 'wha30-06-2011g.');
$sql = "Select avg(Value) as Mittelwert, Date_Format(Time,'%m') as Monat, Date_Format(Time, '%Y') as Jahr From Item1 Group By Monat, Jahr";
$rows = array();
foreach ($pdo->query($sql) as $row) {
$temp = array();
$temp[] = array('v'=> (string) $row['Monat']);
$temp[] = array('v'=> (string) $row['Jahr']);
$temp[] = array('v'=> (float) $row['Mittelwert']);
$rows[] = array('c'=> $temp);
}
$table['rows'] = $rows;
$jsonTable = json_encode($table);
?>
Hintergrund:
Ich möchte gerne meine gemessene Temperaturen in OpenHab mit Hilfe von Google Charts anzeigen lassen und dies Verlangt die Daten halt in diesem Format.
Vielen Dank schon mal für die Hilfe
Viele Grüße
Torsten
Kommentar