Beiträge von Kassi

Ich habe einen Blog Artikel verfasst - Wie benutze ich die Suche richtig - Bitte diesen beachten und auch umsetzen bevor Ihr ein Neues Thema eröffnet!

    Ja, es sind nur die 3 Spiele von den DB- Änderungen betroffen.
    Die andere Änderung war ja nur grafisch im Turnierbaum falsch.
    Deshalb sind die Ergebnisse auch für alle anderen Spiele richtig in der DB.


    Edit:
    nun muss erst einmal entschieden werden, ob das in den Serverdaten-Laden Bereich kommt. Sollte da dann der Tausch der Tipps in der DB automatisch vorgenommen werden, wäre es schlecht, wenn man das von Hand schon vorher macht.
    Dann müsste das nochmal manuell gemacht werden, um die Daten wiederum zu drehen -> Maintenance Mode würde ich dann hier einschalten, damit kein User in der Zeit tippen kann.

    bei mir steht da 0:0 bei beiden laufenden Spielen!
    Ich habe USE_RESULTS auf True -> das wird aber nicht wie beschrieben als Live- Ergebnis in die Datenbank bei mir geschrieben - leider.


    PS: Bei Argentinien steht es doch aber erst 2:3 ?( wie kommt dann bei dir 2:4 rein?


    Mit meinem Liveticker bin ich sonst sehr zufrieden 8o

    ACHTUNG!!

    Wirkt sich die Änderung in der DB auf bereits abgegebene Tipps aus? Einige haben bei uns wegen Urlaub bereits das 1/8-Finale getippt.

    Das hat sehr wohl Auswirkungen auf die bereits abgegebenen Tipps!!


    Diese müssen dann in der Tabelle wmtipp_tipps geändert werden! Hier muss nach Spiel 59, 61 und 62 gesucht werden und die Werte aus heim und gast vertauscht werden!
    Hier noch das SQL-Statement zum Tausch der bisher abgegebenen Tipps der 3 betroffenen Spiele (edit: nun mit sicherem Modus):

    SQL
    1. UPDATE wmtipp_tipps SET heim=(@temp:=heim), heim = gast, gast = @temp WHERE spiel=59 OR spiel=61 OR spiel=62;


    zusammen ergibt das dann (edit: nun mit sicherem Modus):

    SQL
    1. UPDATE `wmtipp_spiele` SET `heim`='W51', `gast`='W52' WHERE `id`=59;
    2. UPDATE `wmtipp_spiele` SET `heim`='W57', `gast`='W58' WHERE `id`=61;
    3. UPDATE `wmtipp_spiele` SET `heim`='W59', `gast`='W60' WHERE `id`=62;
    4. UPDATE wmtipp_tipps SET heim=(@temp:=heim), heim = gast, gast = @temp WHERE spiel=59 OR spiel=61 OR spiel=62


    UND WIEDERUM AUF DAS PRÄFIX ACHTEN!!

    ...mit dem Bild von laserjay, der Änderung von Fieldwdd

    In der include/inc.functions.admin.php, Zeile 613 und 614 in diese ändern:


    Quellcode
    57 => array ("xh" => 97, "yh" => 58, "xg" => 97, "yg" => 162, "w" => 34, "h" => 25, "posh" => "left", "posg" => "left"),
    58 => array ("xh" => 97, "yh" => 247, "xg" => 97, "yg" => 351, "w" => 34, "h" => 25, "posh" => "left", "posg" => "left"),


    Nachdem der Turnierbaum dann neu generiert wurde, müsste vielleicht nochmal ein Strg+F5 auf der Seite gemacht werden.

    und derÄnderung in der DB:

    SQL
    1. UPDATE `wmtipp_spiele` SET `heim` = 'W51', `gast` = 'W52' WHERE `id` =59;
    2. UPDATE `wmtipp_spiele` SET `heim` = 'W57', `gast` = 'W58' WHERE `id` =61;
    3. UPDATE `wmtipp_spiele` SET `heim` = 'W59', `gast` = 'W60' WHERE `id` =62;


    !!Präfix der Tabelle beachten!!


    ...und nach Turnierbaum generieren im Adminbereich\DB Refresh und Strg+F5 auf der Seite Finale passt es wieder 8)

    Dateien

    • Turnierbaum.png

      (70,58 kB, 117 Mal heruntergeladen, zuletzt: )

    Ich hab mir mal den Code angesehen.
    Soweit ich das analysieren konnte, ist es ein konzeptionelles Problem.
    Die Rangliste wird zuerst gelesen, der Rang als letzter Rang gemerkt, die Berechnung durchgeführt, die Differenz zw. gemerktem Rang und neuem Rang gebildet und diese nun angezeigt. Durch die Neuberechnung der Rangliste wird der neue Rang geschrieben. Damit geht der Bezug zum alten Rang verloren.
    Wird nun aus dem Admin- Bereich die Rangliste neu berechnet, die Ranglistenberechnung aus irgendeinem anderen Grund (z.B. neue Ergebnisse vom Datenservice) ausgelöst und die Ergebisse haben sich dabei eigentlich nicht verändert, ist die Differenz des Ranges immer 0!!


    Das ist ein grundsätzliches Problem.
    Die Angabe der Differenz ist eh eine nicht definierte Differenz. Es kommt hier auf die Differenz der Ergebnisse an. Man kann nicht sagen, ob es sich hier um die Differenz des Spieltages oder des letzten Spieles handelt. Hier kommt es auch auf die Zeitplanung der Cronjobs an. Wenn jemand das manuell macht, dann kann es sein (je nachdem wann er das macht), dass es sich um die Differenz des letzten Spieltages handelt. Bei mir läuft der Cronjob für die Ergebnisse viel häufiger. Damit ist es eine Differenz zw. den Bereitstellungen der Ergebnisse des Datenservices.
    Ich hoffe, ihr versteht meine Ausführungen.


    Es müssten die Ränge der User in einer Tabelle nach jedem beendetem Spiel gespeichert werden. Dann müsste man per Einstellung bestimmen, auf was sich die Differenzangabe beziehen soll: auf letztes Spiel, auf den letzten Spieltag oder andere Möglichkeiten.


    Zum Spieltag noch eine Bemerkung: Was ist denn eigentlich der Spieltag eines außerhalb unserer Zeitzone befindlichen Turniers? Unsere Scripte sind alle auf das Datum ausgelegt - und nur auf das Datum! Findet ein Spiel um 0:00Uhr statt, ist es in unserem Tippspiel schon der nächste Spieltag.
    Wir müssen also die Scripte für die Zukunft so anpassen, dass wir den Spieltag nich nur an das Datum hängen, sondern an das Datum und die Zeit. In der Konfiguration muss dann natürlich auch bestimmt werden, zu welchem Zeitpunkt des Tages ein Spieltagswechsel stattfindet.


    Da wir keine Spiele mehr nach 0:00Uhr ab jetzt mehr haben, ist das Datumsproblem für diese WM nicht mehr relevant - die Ranglistenberechnung in Abhängigkeit von der Bereitstellung neuer Daten und deren Neuberechnung sehr wohl.
    Das ist für diese WM meiner Meinung nach nicht mehr umsetzbar, da es zu viele Stellen gibt, wo diese Änderungen gemacht werden müssten - ohne großen Testzeitraum.


    Fazit: für zukünftige WM's ist das schon wichtig, für eine EM nur dann, wenn die Spiele immer später angesetzt werden und eventuell nach 0:00Uhr stattfinden könnten...

    auf welchen Geräten ist das bei euch zu breit?


    Ich habe meine Änderungen selbst angepasst. Auf dem Androiden sieht die Rangliste schon mal sehr gut aus.
    Das Siegerpodest muss ich mir noch ansehen...
    Wenn jemand daran interessiert ist, dann kann ich das ja mal zusammenstellen, was ich geändert habe.
    Leider kann ich nichts zu Apple sagen.


    Auch habe ich für die mobilen geräte die Position des Countdowns ganz nach links verschoben, da es bei mir außerhalb der Seite angezeigt wurde.

    OK, ich hab ja geschrieben, dass ich in der inc.functions.php geändert hatte - das hatte ja nichts gebracht.
    Nun habe ich in der inc.functions.admin.php meine Änderung gemacht. Danke Sören!


    Jetzt funktioniert es bei mir, ohne Rücksicht auf die Anzahl der abgegebenen Tipps.
    Die 3 User haben nun alle den gleichen Rang!! :thumbsup:



    Da es schon Anfragen gab, die in die Richtung gehen, ob man nicht die Ergebnisse, Differenz, Tendenz, (Boni) auch bei der Berechnung weglassen könnte, müsste man das konfigurierbar machen.
    Das werde ich heute mal machen und separat posten.

    So einfach sehe ich das nicht.
    Für mich ist klar, dass etwas falsch ist - egal, welche Sichtweise man hat.


    Bei mir (siehe Bild vorheriger Beitrag von mir im roten Bereich) haben 3 User alles gleich, bis auf die Anzahl der Tipps.
    Unabhängig von der Sichtweise darf aber das nicht sein:
    Ein User mit 17 Tipps steht auf Platz 8, der andere User mit den gleichen Daten steht auf Platz 10 und der mit nur 16 Tipps steht in der Mitte auf Platz 9.
    Egal welche Sichtweise, die beiden User mit den komplett gleichen Daten sollte gemeinsam auf einem Platz sein!


    Also das kann ich niemand erklären...






    nach Deinem Bild zu urteilen, ist der letzte Spieler (Rang 10) erst mit dem letzten Spiel (LSP) am letzten Spieltag (LST) auf den Rang gekommen.
    Da er damit als letzter von den dreien diese Punkte erreicht hat, wird er untergeordnet.


    Danke für deine Gedanken hierzu, das könnte wirklich weiter helfen...


    eventuell weiß ja jemand genau, wo die berechnung durchgeführt wird.

    bei mir habe ich keine solcher Einträge.
    Ich habe auch immer genausoviel Einträge, wie Benutzer. 8)


    Wenn es sich wie bei diesem Eintrag von dir immer um eine uid=0 handelt, verstehe ich nicht, wie das in die DB kommt.
    Hast du einen User gelöscht? (dann erklärt sich noch nicht die uid=0)
    Hast du mal die Ranglisten neu berechnen lassen? (Admin\DB Refresh)

    Genau das ist das Problem!


    Mit dieser Logic wird derjenige bestraft, der mehr Tipps abgegeben hat.
    Zwar ist der Tippschnitt des Tippers besser, der die gleichen Punkte mit weniger Tipps macht, aber das ist ja nur eine Annahme.
    Ich weiß ja nicht, ob das nicht getippte Spiel daneben gegangen wäre.
    Z.B.:
    Ein Tipper vergißt das sichere Spiel Spanien- Niederlande ;-) zu tippen, hätte aber auf Spanien getippt. Der andere tippt dieses Spiel auf Spanien.
    Jetzt wird der "Faule" Tipper in der Rangliste belohnt, weil er ja weniger Tipps abgegeben hat.


    Deshalb möchte ich diese Abhängigkeit raus nehmen. Die Plätze müssen in einem solchen Fall gleich sein!
    Bei mir gibt es noch andere komische Sachen in der Rangliste (siehe Bild).
    Im grün eingerahmten Bereich sieht das gut aus. Im rot eigerahmten Bereich ist es aber kurios.
    Alle haben 18 Punkte (steht bei mir ganz hinten, weil ich das so besser finde), alle haben die gleichen Anzahlen an Ergebnissen, Differenzen und Tendenzen. Einer hat einen Tipp weniger. Der steht nun in der Mitte ?? Alle haben einen eigenen Rang <- sehr komisch.


    Nun habe ich mal geschaut, wie das berechnet wird.
    In den inc.functions.php im Ordner include gibt es mehrere Funktionen, die die Ranglisten berechnen.
    Meine Änderung in der sort_rangliste, CalcRanglistenRang, CalcRanglistenRangNeu diesbezüglich haben leider keinen Erfolg gebracht.
    Auch nach einem dbRefresh (mit Ranglistenneuberechnung) wird meine Änderung ignoriert. Deshalb denke ich, dass dioe Berechnung woanders gemacht wird.


    Ich frage mich nun, wie die Ranglisten berechnet werden?

    Danke für das genaue Hinsehen!!


    Noch eine Ergänzung der Verbesserung:
    Bei den Ein-/Auswechselungszeiten werden die Minuten auch noch falsch angezeigt (").
    -weiter in der Datei content/statistik.spiel.php
    -Zeile 542 und 587

    PHP
    1. <?php echo ($sv['event'] == 1 ? $sv['minute'] .'\'' : "&nbsp;"); ?>


    oder Datei nutzen (Korrektur von viruz ist mit enthalten)

    Habe Kassis Tipp befolgt.
    Dummerweise wird bei mir überhaupt kein Liveticker angezeigt. Die Seite bleibt leer

    Das muss aber schon vorher bei dir so gewesen sein...
    Die Änderungen haben nichts mit der generellen Anzeige zu tun.


    Zum Thema "Elfenbeinküste":
    In OpenLigaDB ist es so hinterlegt und ich persönlich habe noch nie einen deutschen "Côte d’Ivoire" dafür sagen hören.
    Meine Entscheidung steht fest - wenn jemand das nicht will, kann er es ja anders handhaben.


    Die Performance des Tippspiels und des Forums hier ist echt langsam heute. Da macht selbst das Bearbeiten der Beiträge keinen Spaß.

    Ich habe das zwar nicht, aber könnt ihr versuchen, das zu verfolgen? Das soll natürlich nicht passieren.
    Um welche Bonusfrage handelt es sich denn? toto1988: Du hast ja schon in der DB nachgesehen. Kann es sein, dass es sich um dien Torschützenkönig handelt.
    Damit haben die meissten Probleme und wenn man nicht lesen kann oder nicht nachfragt, dann ist der Tipp nicht richtig.
    Fragt bitte den entsprechenden User, was er gemacht hat.
    Die Abfrage sollte natürlich soetwas abfangen.

    eigentlich sollte der Admin für den Admin sein :golly:
    Ich würde den Admin nicht löschen, denke aber, dass es keine Probleme geben dürfte.
    Du hast ja geschrieben, dass du die Ergebnisse wieder gelöscht hast, aber die Bonustipps stehen mit Sicherheit noch drin.
    Warum nun die Bonuspunkte bei dir schon gewertet werden, muss von deinen Bonusfragen abhängen.
    Du hast wohl noch zusätzliche Bonusfragen, die schon gewertet wurden?
    Du kannst in der Datenbank die Tabelle wmtipp_bonus_tipps bearbeiten.
    Hast du viele User, dann kann das mühsam sein oder du nutzt die SQL Query:

    SQL
    1. SELECT * FROM `wmtipp_bonus_tipps` WHERE `usr` =1


    Der Admin hat die ID 1. Nun brauchst du nur noch die entsprechenden Einträge löschen und die Neuberechnung im Adminbereich anstoßen.


    Bitte immer eine Datenbanksicherung durchführen!!