<?php /**************************************************************************************************************************/ /* ------------------------------------------ BEGINN : ZEICHNEN DES DIAGRAMMES ------------------------------------------ */ /**************************************************************************************************************************/ // content="text/plain; charset=utf-8" include_once './jpgraph/jpgraph.php'; include_once './jpgraph/jpgraph_bar.php'; include_once './jpgraph/jpgraph_line.php'; // allgemeine Funktionen einbinden include_once './functions.php'; // die aktuellen Motorflugzeuge holen und in ein Array packen $flugzeuge = getFlugzeuge(FILTER_MOTORFLUG); // Größe festlegen $graph = new Graph(650, 400, 'auto'); // Maßstäbe setzen $graph->SetScale('textlin'); // Abstände festlegen $graph->img->SetMargin(50, 30, 20, 20); // sicher stellen das Anti-Aliasing deaktiviert ist // falls nicht, kann die Methode SetWeight() nicht verwendet werden $graph->img->SetAntiAliasing(false); // aktuelle Flugstatistik und die aus dem Vorjahr ermitteln $flugstatistik_neu = getFlugstatistik(date('Y'), FILTER_MOTORFLUG); $flugstatistik_alt = getFlugstatistik(date('Y') - 1, FILTER_MOTORFLUG); // Flugstunden aus dem aktuellen Jahr und dem Vorjahr ermitteln $dataY_Flugzeit_neu = getFlugstunden($flugstatistik_neu); $dataY_Flugzeit_alt = getFlugstunden($flugstatistik_alt); // Flugbewegungen aus dem aktuellen Jahr und dem Vorjahr ermitteln $dataY_Starts_neu = getFlugbewegungen($flugstatistik_neu); $dataY_Starts_alt = getFlugbewegungen($flugstatistik_alt);
<?php /**************************************************************************************************************************/ /* ------------------------------------------ BEGINN : ZEICHNEN DES DIAGRAMMES ------------------------------------------ */ /**************************************************************************************************************************/ // content="text/plain; charset=utf-8" include_once './jpgraph/jpgraph.php'; include_once './jpgraph/jpgraph_bar.php'; include_once './jpgraph/jpgraph_line.php'; // allgemeine Funktionen einbinden include_once './functions.php'; // die aktuellen Segelflugzeuge holen und in ein Array packen $flugzeuge = getFlugzeuge(FILTER_SEGELFLUG); // Größe festlegen $graph = new Graph(650, 400, 'auto'); // Maßstäbe setzen $graph->SetScale('textlin'); // Abstände festlegen $graph->img->SetMargin(50, 30, 20, 20); // sicher stellen das Anti-Aliasing deaktiviert ist // falls nicht, kann die Methode SetWeight() nicht verwendet werden $graph->img->SetAntiAliasing(false); // aktuelle Flugstatistik und die aus dem Vorjahr ermitteln $flugstatistik_neu = getFlugstatistik(date('Y'), FILTER_SEGELFLUG); $flugstatistik_alt = getFlugstatistik(date('Y') - 1, FILTER_SEGELFLUG); // Flugstunden aus dem aktuellen Jahr und dem Vorjahr ermitteln $dataY_Flugzeit_neu = getFlugstunden($flugstatistik_neu); $dataY_Flugzeit_alt = getFlugstunden($flugstatistik_alt); // Flugbewegungen aus dem aktuellen Jahr und dem Vorjahr ermitteln $dataY_Starts_neu = getFlugbewegungen($flugstatistik_neu); $dataY_Starts_alt = getFlugbewegungen($flugstatistik_alt);
function getFlugstatistik($jahr, $filter) { // Rückgabe-Variable definieren $return = array(); // Modul für DB-Zugriff einbinden require_once 'konfiguration.php'; // Verbindung zur Datenbank herstellen // am System mit Host, Benutzernamen und Password anmelden @mysql_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT) or die('Could not connect to mysql server.'); @mysql_select_db(MYSQL_DATENBANK) or die('Could not select database.'); // Liste mit den Flugzeugen holen $flugzeuge = getFlugzeuge($filter); foreach ($flugzeuge as $flugzeug) { // SQL-Befehl zurecht fuddeln, // die Flugstunden und -bewegungen anhand der übergebenen Parameter ermitteln $sql = sprintf(' SELECT `flugbuch`.`luftfahrzeug` AS `Flugzeug`, ROUND(SUM(`flugbuch`.`flugzeit`) / 60) AS `Flugstunden`, COUNT(*) AS `Flugbewegungen` FROM `flugbuch` WHERE `flugbuch`.`luftfahrzeug` = "%s" AND `flugbuch`.`geloescht` = "N" AND `flugbuch`.`datum` BETWEEN "%d-01-01" AND "%d-12-31" GROUP BY `flugbuch`.`luftfahrzeug` ORDER BY `flugbuch`.`luftfahrzeug` ASC ', $flugzeug, $jahr, $jahr); // alternativen SQL-Befehl zurecht fuddeln, // wenn das Datum vor 2014 ist ... // es wird auf eine alte Tabelle mit Hauptflugbuchdaten zugegriffen if ($jahr < 2014) { $sql = sprintf(' SELECT `hauptflugbuch`.`kennzeichen` AS `Flugzeug`, ROUND(SUM(((HOUR(`hauptflugbuch`.`flugzeit`) * 60) + MINUTE(`hauptflugbuch`.`flugzeit`)) / 60)) AS `Flugstunden`, SUM(`hauptflugbuch`.`landungen`) AS `Flugbewegungen` FROM `hauptflugbuch` WHERE `hauptflugbuch`.`kennzeichen` = "%s" AND `hauptflugbuch`.`geloescht` = "N" AND `hauptflugbuch`.`datum` BETWEEN "%d-01-01" AND "%d-12-31" GROUP BY `hauptflugbuch`.`kennzeichen` ORDER BY `hauptflugbuch`.`kennzeichen` ASC ', $flugzeug, $jahr, $jahr); } // zuvor definierte SQL-Anweisung ausführen // Anzahl der Datensätze sollte größer als 0 sein um TRUE zurückzugeben $db_erg = mysql_query($sql); if ($zeile = mysql_fetch_object($db_erg)) { // Flugstunden und -bewegungen hinzufügen $return[] = array($zeile->Flugzeug, $zeile->Flugstunden, $zeile->Flugbewegungen); } else { // Keine Daten gefunden oder vorhanden $return[] = array($flugzeug, 0, 0); } // Verbindung zur Datenbank schließen mysql_free_result($db_erg); } // Rückgabe der Flugstunden und -bewegungen return $return; }