thiemo Geschrieben 23. Dezember 2004 Teilen Geschrieben 23. Dezember 2004 Hallo zusammen, ich hab hier eine kleine Aufgabe für Freunde des Fusballs und der Datenbanken. Also ich spiele mit meiner Freizeitmannschaft in einer "Bunten Liga". Hier gibt es eine Online-Tabelle --> hier klicken und auf "Tabelle" Das Problem an der ganzen Sache ist, das die Tabelle nicht so dargestellt wird, wie es den Regularien entspricht. Sind zwei Mannschaften punktgleich, zählt vor dem Torverhältnis der direkte Vergleich. Und genau dieser direkte Vergleich wird bei der Berechnung nicht Berücksichtigt. Z.B ist nicht "Gonsbachtal" Meister, sondern "FKK" Gespielt wird nur ein Spiel (kein Hin und Rückspiel) Sieg = 2 Punkte Remis = 1 Punkt Also ich bin nicht Webmaster dieser Seite. Ich hab diesen Mal angeschrieben und folgende Hintergrundinfos bekommen die Seite ist komplett in Perl. Momentan ist es eine Berkley DB (DB_File) in Zukunft aber mysql. Den direkten Vergleich einbauen halte ich für absoluten overkill. Ich habe momentan eine einzige Abfrage um die komplette Tabelle zu generieren: SELECT m.name, m.id, SUM( IF((m.id = s.team1 AND s.tore1 > s.tore2) OR (m.id = s.team2 AND s.tore1 < s.tore2), 2, 0)) + SUM(IF(s.tore1 = s.tore2, 1, 0)) as pkt, SUM(IF((m.id = s.team1 AND s.tore1 > s.tore2) OR (m.id = s.team2 AND s.tore1 < s.tore2), 1, 0)) AS gewonnen, SUM(IF((m.id = s.team1 AND s.tore1 < s.tore2) OR (m.id = s.team2 AND s.tore1 > s.tore2), 1, 0)) AS verloren, SUM(IF(s.tore1 = s.tore2, 1, 0)) AS unentschieden, SUM(IF(m.id = s.team1, s.tore1, 0)) + SUM(IF(m.id = s.team2, s.tore2, 0)) AS tore, SUM(IF(m.id <> s.team1, s.tore1, 0)) + SUM(IF(m.id <> s.team2, s.tore2, 0)) AS gegentore, SUM(IF(m.id = s.team1, s.tore1, 0)) + SUM(IF(m.id = s.team2, s.tore2, 0)) - SUM(IF(m.id <> s.team1, s.tore1, 0)) - SUM(IF(m.id <> s.team2, s.tore2, 0)) AS tordifferenz, COUNT(*) AS spieleanzahl FROM teams as m LEFT JOIN spiele AS s ON (m.id = s.team1 OR m.id = s.team2) WHERE 1 GROUP BY m.id ORDER BY pkt DESC, tordifferenz DESC, tore DESC Wobei teams die Tabelle mit den Namen der Teams ist und spiele die Tabelle mit den eingetragenen Ergebnissen. Die where Klausel beinhaltet normalerweise die Saison ID (1 heißt das die Gesamttabelle geholt wird) Um dort noch den direkten Vergleich einzubauen müßte jedesmal eine zweite Tabelle konstruiert werden für den Fall, das es Punktgleichheit gibt und eine Saison ID eingegeben wurde und die Platzierungen entsprechenden getauscht werden. Mir fällt dazu keine sinnvolle Lösung ein. ist der direkte Vergleich ohne viel Aufwand einzubauen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
thiemo Geschrieben 29. Dezember 2004 Autor Teilen Geschrieben 29. Dezember 2004 bevor hier eine mahnung erfolgt...ich will nicht rumdrängeln ;-) vielleicht kann ja einfach einer, der sich etwas mit datenbanken auskennt schreiben ob es machbar ist oder wie hoch der aufwand in etwa wäre danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ramses_PyramidenVerleih Geschrieben 2. Januar 2005 Teilen Geschrieben 2. Januar 2005 Kenne mich nicht wirklich mit Perl aus, aber wenn es mit PHP vergleichbar ist, dann sollte das machbar sein und nicht allzugrosser aufwand sein. Allerdings ist es nicht so ohne Weiteres mit einer neuen Datenbankabfrage zu machen, sondern die Logik muss im Perl sein. So sehe ich das zumindest! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 4. Januar 2005 Teilen Geschrieben 4. Januar 2005 ohne mich jetzt wirklich mit Perl auszukennen würde ich sagen, daß eine fußballtabelle mit direktem vergleich 1) nicht sinnvoll ist 2) umständlich zu handhaben ist 3) zu viel platz braucht du brauchst auf jeden fall eine weitere tabelle wo alle ergebnisse geseichert werden (kostet Speicherplatz). dann muß man auch alle spiele/spieler mit einander vergleichen. (kostet ZEIT) und letztendlich macht es für einen Fußballfreund auch wenig sinn, den direkten vergleich zu ziehen. wird auch in keiner liga gemacht. Stell dir einfach mal vor 3 oder mehr mannschaften sind punktgleich :eek: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
thiemo Geschrieben 5. Januar 2005 Autor Teilen Geschrieben 5. Januar 2005 tja...in der bunten liga rheinhessen wirds so gemacht aber stimmt schon was Du schreibst....wir werden es jetzt wohl so machen, dass wir in den letzten spieltagen die tabelle händisch pflegen... trotzdem nochmal danke für die antwort Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.