Teil 3 - Datenquellen: MySQL Datenbank
Achtung: Neue und aktualisierte Versionen der Tutorials finden Sie hier:
http://www.pscl.chFür die Speicherung von Wetterdaten eigenen sich Datenbanken besonders. Sie erlauben z.B. das schnelle filtern und sortieren umfangreicher Datenbeständen.
(Wie die Wetterdaten in eine Datenbank kommen wird später beschrieben.)
Die Datenbank
Hier die Struktur und einige Zeilen der Beispiel DB:Die Datenabfrage
Nun ein einfaches php script welches die gewünschten Daten aus der DB zieht.Wir schreiben den php Code direkt in den Datenbereich des Diagrammscripts.
var chartData = [ HIER DAS PHP SCRIPT ];
1. Datenbankverbindung
Zuerst mit der Datenbank Verbindung aufnehmen:mysql_connect("SQL Host", "Username","Password");
mysql_select_db("Database Name");
(mit Ihren Zugangsdaten ersetzen)2. Die SQL Abfrage
Jetzt die MySQL Abfrage definieren:$query = "
Zuerst wird das Feld Datetime zerlegt (dy, dm, dd etc) dann folgen die Wetterwerte "temp", "hum" und "pressure". Zudem wird die Monatszahl auf das Javascript Format geändert (-1).
SELECT YEAR(datetime) AS dy, MONTH(datetime) -1 AS dm, DAY(datetime) AS dd, HOUR(datetime) AS th, MINUTE(datetime) AS tm, temp, hum, pressure
Die Datenbanktabelle ausgewählt. (hier "wettertabelle")
FROM wettertabelle
Der Filter (hier mal nur Daten vom 25 Nov. 2013)
WHERE DATE(datetime) = '2013-11-25'
Sortiert nach Datum:
ORDER BY datetime
Hier nochmals die gesamte Abfrage der $query zugewiesen:
$query = "
SELECT YEAR(datetime) AS dy, MONTH(datetime) -1 AS dm, DAY(datetime) AS dd, HOUR(datetime) AS th, MINUTE(datetime) AS tm, temp, hum, pressure
FROM wtr2
WHERE DATE(datetime) = '$inputDate'
ORDER BY datetime
";
3. Die Ausgabe
Nun müssen wir die selektierten Daten mit echo ausgeben:Wir beginnen mit:
$result = mysql_query($query)
OR die("Error: $query <br>".mysql_error());
while($row = mysql_fetch_array($result))
{
...dann das Echo:
echo "{date: new Date(".$row['dy'].",".$row['dm'].",".$row['dd'].",".$row['th'].",".$row['tm']."),t:".$row['temp'].",h:".$row['hum'].",p:".$row['pressure']."},";
Zur Erinnerung: Der echo Befehl sollte folgende Zeile ausgeben:
{date: new Date(2013,10,25,0,0),t:3.7,h:90.0,p:1022.9},
Klammer schließen:
};
Zusammenfassung:
Hier nochmals das gesamte php script:<?php
//db verbindung
mysql_connect("Hostname", "Username","Password");
mysql_select_db("Database Name");
//db abfrage
$query = "
SELECT YEAR(datetime) AS dy, MONTH(datetime) -1 AS dm, DAY(datetime) AS dd, HOUR(datetime) AS th, MINUTE(datetime) AS tm, temp, hum, pressure
FROM wettertabelle
WHERE DATE(datetime) = '2013-11-25'
ORDER BY datetime
";
//ausgabe der zeilen
$result = mysql_query($query)
OR die("Error: $query <br>".mysql_error());
while($row = mysql_fetch_array($result))
{
echo "{date: new Date(".$row['dy'].",".$row['dm'].",".$row['dd'].",".$row['th'].",".$row['tm']."),t:".$row['temp'].",h:".$row['hum'].",p:".$row['pressure']."},";
};
?>
Keine Kommentare:
Kommentar veröffentlichen