Alpine Ski WM 2007 in Aare

Über mich

  • Name: Philipp Unterluggauer
  • Alter: 17 Jahre
  • Wohnort: St.Paul

Aufgabenstellung

  • Die Ergebnisse aller Bewerbe bei der Ski-WM in Aare 2007 sollten abgerufen werden können. Die Daten sollen aus einer selbst angelegten Mysql Datenbank stammen.
  • In einem Eingabeformular werden die Bewerbe ausgewählt, deren Ergebnisse von einem PHP-Skript dargestellt werden.
  • Die Medaillengewinner sollen auch farblich gekennzeichnet werden.
  • Die Formatierungen erfolgen ausschließlich durch Style-sheets.
  • Auf einer Startseite stellt sich der Programmautor samt Aufgabenstellung und Lösungsvorschlägen vor.

Problemlösung

Die Ergebnisse aller Bewerbe werden von der offiziellen FIS-Homepage aufgerufen und in eine Textdatei kopiert. Nach dem Importieren dieser Textdatei in eine Access-Datenbank werden die Daten in eine mySQL-Datenbank exportiert. Von dort aus können sie jederzeit abgerufen werden! Wenn ein PHP-Skript diese Daten anfordert, werden die Daten aus dieser mySQL-Datenbank gelesen.
Zum Testen auf den Screenshot klicken!

Programmausschnitte

Datenbankstruktur:
1) Tabelle "Bewerbe"
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| BKurz  | varchar(3)  | NO   | PRI |         |       |
| BName  | varchar(30) | YES  |     | NULL    |       |
| BDatum | date        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
2) Tabelle "Ergebnisse"
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Bewerb | varchar(3)  | YES  |     | NULL    |       |
| Rang   | int(11)     | YES  |     | NULL    |       |
| name   | varchar(50) | YES  |     | NULL    |       |
| zeit   | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3) Tabelle "Teilnehmer"
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(50) | NO   | PRI |         |       |
| GebJahr | int(11)     | YES  |     | NULL    |       |
| nation  | varchar(3)  | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
Anmeldung am mySQL-Server:
if(! mysql_connect('$host','$user','$passwort'))
  {echo "Fehler bei der Anmeldung";exit;}
SQL-Befehl zum Abrufen der Informationen der Bewerbe:
$sql="select Ergebnisse.Rang as platz, 
             Ergebnisse.Name as laufer,
             Nation, Zeit 
             from Ergebnisse,Teilnehmer,Bewerbe 
             where Bewerb='$bew' and 
                   Bewerbe.BKurz=Ergebnisse.Bewerb and 
                   Teilnehmer.Name=Ergebnisse.Name 
             limit $platze";
SQL-Befehl zur Medaillenwertung
$sql="select nation,
             sum(if(rang=1,1,0)) as gold,
             sum(if(rang=2,1,0)) as silber,
             sum(if(rang=3,1,0)) as bronze              
             from ergebnisse inner join teilnehmer 
             on ergebnisse.name=teilnehmer.name
             where rang<=3 
             group by nation
             order by gold desc, silber desc, bronze desc";