Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fussballtabelle mit direktem Vergleich

Empfohlene Antworten

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?

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 :)

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!

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:

tja...in der bunten liga rheinhessen wirds so gemacht :rolleyes:

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 :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.