Seite 5 von 5
Verfasst: 18.01.2003 11:40
von jasc
PhilippK hat geschrieben:Vielleicht hat's ja auch 'nen Sinn...
Gruß, Philipp
Deswegen hatte ich ja gefragt...

Verfasst: 19.01.2003 01:45
von Condor
Hallo,
ja, ich habe es endlich hinbekommen. Danke an alle die mir dabei geholfen haben. Aber ein Problem habe ich da noch.
In meiner Tabelle kann ich ja nach den Überschriften der Spalten sortieren. Wenn ich auf die Tabelle gehe, dann wird
erst normal sortiert. Wenn ich dann z.B nach Gtore sortiere, wird soweit normal sortiert. Burghausen ist ganz oben,
dann kommen Oberhausen, Leverkusen usw. Der Platz wird ja jeweils mitgenommen. Also bei Burghausen steht der 11 Platz,
bei Oberhausen der 13 und bei Leverkusen der 4. Wenn ich aber jetzt die Seite aktualisiere, ich meine per Browser,
dann wird nochmal sortiert, so das zwar die Sortierung richtig ist, aber die Plätze wieder neu vergeben werden.
Danach hat dann Burghausen den 1 Platz, Oberhausen den 2 usw. Gibt es da eine Möglichkeit, das irgendwie zu vermeiden ?
Das ist eine reine Phantasietabelle. Es gibt aber auch Statistik-Tabellen, wo Nationalmannschaften und
Ligamannschaften in der gleichen Tabelle vorkommen. Es gibt ja auch Internationale Turniere, wo z.B. England gegen
Fluminense spielt.
Verfasst: 19.01.2003 01:46
von Condor
Hallo,
ein Problem habe ich noch. Das habe ich schonmal im Forum vorgetragen, aber niemand hat darauf geantwortet.
Ich möchte den aktuell sicheren Platz berechnen. Nehmen wir mal an, dies ist die Sortierte Tabelle:
Code: Alles auswählen
| Platz | Verein | Punkte | Spiele | ET | GT | Diff |
---------------------------------------------------------
| 1 | Italien | 35 | 20 | 33 | 15 | 18 |
| 2 | Ajax | 34 | 20 | 33 | 16 | 17 |
| 3 | Vitesse | 30 | 20 | 30 | 19 | 11 |
| 4 | Leverk. | 29 | 20 | 19 | 24 | -5 |
| 5 | Brasilien | 25 | 20 | 23 | 12 | 11 |
| 6 | Deutschl. | 23 | 20 | 33 | 18 | 15 |
| 7 | Polen | 23 | 20 | 34 | 20 | 14 |
| 8 | Mailand | 23 | 20 | 30 | 19 | 11 |
| 9 | Argent. | 21 | 20 | 21 | 12 | 9 |
| 10 | Ungarn | 19 | 20 | 19 | 5 | 14 |
| 11 | Burghausen | 18 | 20 | 18 | 32 | -14 |
| 12 | Schweiz | 12 | 20 | 12 | 21 | -9 |
| 13 | Oberhausen | 12 | 20 | 12 | 24 | -12 |
Die max. Spiele (alle Spiele) habe ich so errechnet:
Wobei die Variable $number die Anzahl der Datensätze in der MySQL-DB ist, mal 2 (Hinrunde und Rückrunde) - 2, da man
nicht gegen sich selbst spielen kann.
Die max. Punkte (alle zu erreichbaren Punkte) habe ich so errechnet:
Die noch zu spielende Spiele (restliche Spiele) habe ich so errechnet:
Die noch zu erreichbaren Punkte habe ich so errechnet:
Wie errechne ich jetzt, den sicheren Platz ? In diesem Beispiel hätte Italien den 8. Platz schon sicher:
Es sind ja nur noch 4 Spiele zu spielen, also sind max. 12 Punkte zu holen. 35 - 12 ergibt also 23 Punkte.
Die niedrigste Mannschaft mit 23 Punkten ist Mailand. Da aber Italien vor Mailand ist, rutschen alle
Mannschaften nach oben und somit hätte Italien den 8. Platz sicher. Aber wie errechne ich den sicheren Platz
nun ? Ich habe ja nur die Punkte errechnet. Jemand ne idee ? Bitte, es ist auch wirklich das letzte Problem.
Verfasst: 19.01.2003 11:14
von PhilippK
Condor,
zumindest der erste Ansatz ist leider falsch. Wenn du z.B. vier Manschaften a, b, c, d hast, rechnest du mit 4 * 2 - 2 = 6 Spielen. Es sind aber 4 * 3 = 12: a:b a:c a:d b:a b:c b:d c:a c:b c:d d:a d:b d:c
Demnach lautet die richtige Formel:
Danach dürfte es etwas komplizierter werden. Wichtig ist dabei auf jeden Fall die Zahl der Punkte, die eine Mannschaft maximal noch erreichen kann, also $punktenoch.
Demnach ergibt sich für die Mannschaft zum Saisonende: mindestens die Punkte, die sie bereits heute hat (ich nenn sie mal $punkteheute), maximal jedoch $punkteheute + $punktenoch = $maxpunkte. Diesen Wert solltest du in die Datenbank schreiben, da du ihn im nächsten Schritt brauchen wirst.
Nun prüfst du für jede Mannschaft, wie viele Mannschaften es gibt, deren Wert von $maxpunkte höher oder gleich dem Wert von $punkteheute der aktuellen Mannschaft ist. Diese Zahl + 1 ergibt die Platzzahl, die die Mannschaft sicher hat.
Gruß, Philipp
Verfasst: 19.01.2003 11:36
von jasc
Das ganze ist aber noch etwas komplizierter, da du theoretisch auch beachten müsstest, ob vielleicht direkte "Verfolger" noch gegeneinander spielen, so dass diese gar nicht mehr beide 12 Punkte aus 4 Spielen holen können....
Also ich weiß leider auch nicht, wie man das exakt berechnen kann, das dürfte recht kompliziert werden, schätze ich

.
Verfasst: 19.01.2003 15:32
von Pyramide
Das Problem mit der Neuvergabe der Plätze hört sich so an, als ob du den SQL "update" Code in die Ausgabe mit reingeschrieben hast, d.h. Wenn du im Browser nach Anzahl Tore sortieren lässt, werden auch die PLätze danach neu vergeben. Stattdessen musst du die Schleife mit dem "update" nur einmal nach jedem modifizieren der Tabelle (also nach jedem Spiel[-tag]) ausführen.
Verfasst: 19.01.2003 23:14
von Condor
HI,
@PhilipK: Aber nehmen wir doch mal die Bundesliga. Dort gibt es 18 Mannschaften, man kann max. 34 Spiele absolvieren. Wenn ich jetzt diese Formel anwende komme ich auch auf 34 und das bei allen Ligen dieser Welt: 18 * 2 - 2 = 34. Aber ich werde mal nachgucken, und deinen Code werde ich mir auch noch ansehen.
@RAMses of JaSc: Du hast vollkommen recht, aber so kompliziert wollte ich jetzt nicht gehen.
@Pyramide: Ich werde das mal nachgucken und etwas dran rumfummeln.
Danke nochmals an alle.
Verfasst: 19.01.2003 23:53
von PhilippK
Condor hat geschrieben:HI,
@PhilipK: Aber nehmen wir doch mal die Bundesliga. Dort gibt es 18 Mannschaften, man kann max. 34 Spiele absolvieren. Wenn ich jetzt diese Formel anwende komme ich auch auf 34 und das bei allen Ligen dieser Welt: 18 * 2 - 2 = 34. Aber ich werde mal nachgucken, und deinen Code werde ich mir auch noch ansehen.
Sorry, da hatte ich nicht aufgepasst: deine Formel stimmt aus Mannschaftssicht, meine aus Gesamtsicht...
Gruß, Philipp