.. | ||
chart.js | ||
db.php | ||
kurse.css | ||
README.md | ||
show.php |
Anzeigen der Wechselkurse
Die Daten werden in aus einer MySQL-Datenbank gelesen und in Tabellenform angezeigt. Für eine Währung wird die Kursentwicklung grafisch veranschaulicht. Die Darstellung basiert auf der Bibliothek https://d3js.org/d3.v3.min.js.
Datenbankroutinen
Für den Datenbankzugriff wird die Klasse db.php verwendet. Der Konstruktor verlangt nach dem Namen der Datenbank ("wechselkurse") sowi den Benutzerdaten (username+password).
Folgende Schnittstellen stehen zur Verfügung:
class DB {
function getDBName() // liefert den Namen der Datenbank
// Liefert ein Array.
// Jeder Eintrag stelt eine Datenzeile dar, die ein assoziatives Array ist.
// wird intern verwendet
function get_Query($sql)
// liefert Abfrage im JSON-Format
function getJSON_Data($sql)
// Für eine sql-Abfrage mit einer Spalte wird der Quelltext für
// eine HTML-Dropbox generiert.
// - sql-Abfrage
// - Zu jeder Option ein Link erzeugt
// - es kann ein vordefinierter Wert ausgewählt werden
// - der Name der Select-Box
function getQueryAsHTMLDropDownBox($sql, $link, $default, $dropdownName)
// Eine SQL-Abfrage wird in einer Texttabelle erzeugt
// Das Format der Tabelle muss übergeben werden
function getQueryAsTEXTTable($sql,$format)
// Eine SQL-Abfrage wird als HTML-Tabelle zurückgegeben
function getQueryAsHTMLTable($sql)
}
Beispielaufrufe:
/*------------------------------------------------------ */
echo $db->getJSON_Data("SELECT * from kurse LIMIT 2;") . "\n";
print_r ( $db->get_Query("SELECT * from kurse LIMIT 2;") );
echo "getQueryAsDropDownBox \n";
print_r ($db->getQueryAsHTMLDropDownBox("SELECT DISTINCT(waehrung) from kurse ORDER BY waehrung", "https://server.de/show.php?waehrung=", "JPY", "myDDF") );
echo "getQueryAsTEXTTable \n";
print_r ($db->getQueryAsTEXTTable("SELECT * from kurse LIMIT 4","%-4s %-12s %-5s %10f") );
echo "getQueryAsHTMLTable \n";
print_r ($db->getQueryAsHTMLTable("SELECT * from kurse LIMIT 4") );
/*------------------------------------------------------ */
Grafische Anzeige des Kursverlaufs
Für die Bibliothek https://d3js.org/d3.v3.min.js wird eine angepasste Datei chart.js verwendet, die das Format auf deutsch umstellt und im Wesentlichen eine Methode enthält, die für die Anzeige verwendet wird.
// ************************************************************
// Funktion zur Erzeugung einer Grafik (Linie)
// Die Daten müssen zwei Spalten enthalten: (zeit | value)
//
// Parameter:
// o titel Diagrammtitel oben
// o sql wird z.Zt. nicht genutzt
// o textX Beschrfitung der x-Achse
// o textY Beschriftung der y-Achse
// o breite Breite des Diagramms
// o hoehe Höhe des Diagramms
// o data Daten im JSON-Format
// o scaleY 0=automatisch skalieren, 1=Prozent 0..100
// o units Einheiten für die Tooltipps
// o id id in css-Klasse
// #id ............ Breite, Rand/farbe)
// #id .title ...... Farbe, Größe des Titels
// #id .y .......... Farbe der y-Beschriftung
// #id .linecolor .. Linienfarbe
// #id .tooltip .... Frarbe Tooltipps
// ***********************************************************
function showDiagram1Line(titel, sql, textX, textY, breite, hoehe, data, scaleY, units, id)
Beispielaufruf ("waehrung" wird als Parameter beim Aufruf mitgegen und muss zuvor mit $_GET oder $_POST gelesen werden):
<script>
<?php
$sqlW = "SELECT datum as zeit, kurs as value from kurse WHERE waehrung='$waehrung' ORDER BY datum DESC";
$json_data = $db->getJSON_Data($sqlW);
echo "data=".$json_data.";"
?>
showDiagram1Line("Währung","","Zeit", "", 600, 300, data, 0, "<?php echo $waehrung; ?><br>=1 Euro", "#graphCurrency");
</script>