Seite 10 von 66

Re: [BETA] Football Prediction League

Verfasst: 21.05.2016 10:51
von Hegse
Moin, kein Problem. Leider führt die Änderung zur nächsten Fehlermeldung :oops:

Code: Alles auswählen

SQL ERROR [ mysqli ]

Field 'delivery_date_2' doesn't have a default value [1364]

SQL

REPLACE INTO phpbb3_footb_matchdays (season, league, matchday, delivery_date, matchday_name, matches) SELECT m.season, m.league, m.matchday, min(m.match_datetime) AS delivery_date, md.matchday_name, md.matches FROM phpbb3_footb_matches AS m JOIN phpbb3_footb_leagues AS l ON (l.season = m.season AND l.league = m.league) JOIN phpbb3_footb_matchdays AS md ON (md.season = m.season AND md.league = m.league AND md.matchday = m.matchday) WHERE m.season = 2016 AND m.league = 40 AND l.bet_in_time = 1 AND m.status = 0 GROUP BY m.season, m.league, m.matchday

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 855
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 193
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 329
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/ext/football/football/acp/update_module.php
LINE: 525
CALL: phpbb\db\driver\factory->sql_query()

FILE: [ROOT]/includes/functions_module.php
LINE: 674
CALL: football\football\acp\update_module->main()

FILE: [ROOT]/adm/index.php
LINE: 81
CALL: p_master->load_active()

Re: [BETA] Football Prediction League

Verfasst: 21.05.2016 11:24
von football
Zum Testen der EM kannst du dir die EM nochmals mit einer neuen Liganummer importieren und deinen User als Tipper aufnehmen.

Zeitreise in die Vergangenheit im phpMyAdmin (ggf. die league -Nummer und Tabelleprefix anpassen):

Code: Alles auswählen

Update phpbb_footb_matchdays 
SET delivery_date = DATE_FORMAT(DATE_SUB(delivery_date, INTERVAL '33 0:00' DAY_MINUTE),'%Y-%m-%d %H:%i:%s'),
delivery_date_2 = DATE_FORMAT(DATE_SUB(delivery_date_2, INTERVAL '33 0:00' DAY_MINUTE),'%Y-%m-%d %H:%i:%s'),
delivery_date_3 = DATE_FORMAT(DATE_SUB(delivery_date_3, INTERVAL '33 0:00' DAY_MINUTE),'%Y-%m-%d %H:%i:%s')  
WHERE season=2016
AND league=40;

Update phpbb_footb_matches 
SET match_datetime = DATE_FORMAT(DATE_SUB(match_datetime, INTERVAL '33 0:00' DAY_MINUTE),'%Y-%m-%d %H:%i:%s'),
goals_home = 2, 
goals_guest=1
WHERE season=2016
AND league=40;
Anschließend gehst du auf Tippen (damit die Spieltage den richtigen Status erhalten) und im Adminbereich bestätigst du die Ergebnisse der ersten drei Spieltage.
Wenn du dann auf Tippen ins Achtelfinale gehst, hat sich nichts verändert. :cry:
Das liegt aber daran, dass Platz 1 und 2 völlig identisch gespielt haben und somit kein 2. Platz ermittelt werden konnte.
Du änderst die Ergebnisse im ersten Spieltag auf 3:1 und speicherst und nun sollten die Mannschaften eingetragen werden.
Falls nicht, alle Ergebnisse im Achtelfinale im Adminbereich löschen dann sollte es gehen.
Jetzt hast du den Stand nach der Vorrunde.

Ist das Team im Achtelfinale eingetragen, wird es nicht mehr ersetzt, auch wenn du die Vorrundenergebnisse veränderst, sodass andere Mannschaften qualifiziert wären.
Du kannst aber im Achtelfinale die Mannschaft wieder austragen, dann wird neu berechnet.

Re: [BETA] Football Prediction League

Verfasst: 21.05.2016 15:03
von football
Hegse hat geschrieben:Moin, kein Problem. Leider führt die Änderung zur nächsten Fehlermeldung :oops:

Code: Alles auswählen

SQL ERROR [ mysqli ]

Field 'delivery_date_2' doesn't have a default value [1364]

SQL

REPLACE INTO phpbb3_footb_matchdays (season, league, matchday, delivery_date, matchday_name, matches) SELECT m.season, m.league, m.matchday, min(m.match_datetime) AS delivery_date, md.matchday_name, md.matches FROM phpbb3_footb_matches AS m JOIN phpbb3_footb_leagues AS l ON (l.season = m.season AND l.league = m.league) JOIN phpbb3_footb_matchdays AS md ON (md.season = m.season AND md.league = m.league AND md.matchday = m.matchday) WHERE m.season = 2016 AND m.league = 40 AND l.bet_in_time = 1 AND m.status = 0 GROUP BY m.season, m.league, m.matchday

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 855
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 193
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 329
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/ext/football/football/acp/update_module.php
LINE: 525
CALL: phpbb\db\driver\factory->sql_query()

FILE: [ROOT]/includes/functions_module.php
LINE: 674
CALL: football\football\acp\update_module->main()

FILE: [ROOT]/adm/index.php
LINE: 81
CALL: p_master->load_active()
Das ist doch wieder der erste Fehler, wenn man Tippabgabe bis zum Spielbeginn gewählt hat. Die Zeilennummer wundert mich nur ein wenig oder hast du meinen Änderungsvorschlag nur davor eingefügt anstatt zu ersetzen?
In diesem Modus benötigt das System ja den 2. und 3. Abgabetermin nicht. Also war mein Änderungsvorschlag Quark.
Die ursprünglichen Zeilen in ext\football\football\acp\update_module.php Zeilen 515 -525 sind durch folgendes zu ersetzen.

Code: Alles auswählen

                    $sql = 'REPLACE INTO ' . FOOTB_MATCHDAYS . " (season, league, matchday, delivery_date, delivery_date_2, delivery_date_3, matchday_name, matches)
                            SELECT m.season, m.league, m.matchday, min(m.match_datetime) AS delivery_date, '' AS delivery_date_2, '' AS delivery_date_3, md.matchday_name, md.matches 
                            FROM " . FOOTB_MATCHES . ' AS m
                            JOIN ' . FOOTB_LEAGUES . ' AS l ON (l.season = m.season AND l.league = m.league)
                            JOIN ' . FOOTB_MATCHDAYS . " AS md ON (md.season = m.season AND md.league = m.league AND md.matchday = m.matchday)
                            WHERE m.season = $season 
                            AND m.league = $league
                            AND l.bet_in_time = 1 
                            AND m.status = 0 
                            GROUP BY m.season, m.league, m.matchday";
                    $db->sql_query($sql);
Dann muss ich noch einmal Prüfen, ob auch die Status < 0 bei den Spielen auf 0 gesetzt werden müssten, oder ob dies dem System egal ist.
Ich habe diesen Modus leider nicht im Einsatz, daher treten jetzt diese alten Fehler auf. Könnte natürlich auch an deinen Server-Einstellungen oder
an einer geänderten Prüfung in einer neuen MYSQL Version liegen.

Re: [BETA] Football Prediction League

Verfasst: 21.05.2016 21:13
von Hegse
1000 Dank football, jetzt funktioniert alles wie es soll! :grin:
Ja ich hatte die die original update_module.php hiermit

Code: Alles auswählen

$sql = 'UPDATE ' . FOOTB_MATCHDAYS . " AS target
geändert und genommen. Wie schon mal geschrieben, in meiner Testumgebung mit dem Präfix phpbb funktionierte ja alles...

Was ich momentan interessant finde ist folgendes im Live Forum:

Code: Alles auswählen

Hinweis

10 Spieltags-Abgabetermine mit Tippabgabe bis zum Spielbeginn korrigiert.
An 5 Spieltagen wurde der Status angepasst.
und in der Testumgebung lokal unter Xampp:

Code: Alles auswählen

Hinweis

5 Spieltags-Abgabetermine mit Tippabgabe bis zum Spielbeginn korrigiert.
An 5 Spieltagen wurde der Status angepasst.
Das ganze jetzt für die EM....
Zumindest die Fehlermeldungen sind weg! :D

Re: [BETA] Football Prediction League

Verfasst: 22.05.2016 00:30
von football
Die Zählweise bei REPLACE INTO ist nicht ganz so einfach. Je nach Index wird REPLACE INTO mit DELETE und INSERT (also 2 Datensätze betroffen)
oder als UPDATE (1 Datensatz betroffen) durchgeführt.

Re: [BETA] Football Prediction League

Verfasst: 22.05.2016 13:36
von silberfuchs
So, ich habe Deine Anleitung zum Testen nun mal probiert - leider scheitere ich daran, dass ich beim Achtelfinale nicht mehr weiterkomme. Irgendwas muss ich wohl falsch machen...dort bleiben 4 Spielpaarungen mit jeweils einer Mannschaft, bei der "Auslosung" steht. Was mach' ich denn da falsch? Wie muss ich denn da weitermachen?

Danke Dir vielmals für Deine Hilfe!

Re: [BETA] Football Prediction League

Verfasst: 22.05.2016 15:06
von football
Du gehst im Adminbereich auf "Teams verwalten", falls du mehrere Ligen hast wählst du die EM-Liga aus und klickst bei dem Team, das als drittplatzierter das
Achtelfinale erreicht hat, auf Einstellungen und setzte "Qualifiziert bis Spieltag:" auf Achtelfinale und speicherst ab.
Dies wiederholst du für alle 4 drittplatzierten.

Anschließend gehst du auf "Spielpläne verwalten", wählst EM und Achtelfinale aus und klickst bei den Spielen 38-41 (die mit dem D für Draw) jeweils auf Einstellungen
und wählst bei Gast nun das entsprechende Team und speicherst ab.

Welches Team in welcher Paarung eingesetzt werden muss, erfährst du bei den bekannten Fussball Internet-Seiten oder aus der guten alten Zeitung.

Nach dem Achtelfinale geht über die hinterlegten Formeln wieder alles automatisch, sobald du die richtigen Ergebnisse im Adminbereich bestätigt hast.
In der Regel tragen die Tipprundenteilnehmer bereits die Ergebnisse ein. Diese gelten aber nur als vorläufig (könnten ja falsch sein, oder ein Tipper wollten nur mal sehen, wie es aussieht falls die Spiele so ausgehen wie er getippt hat) und werden erst dann als endgültig für die Formelberechnung erkannt, wenn jemand sie im Adminbereich unter "Spielergebnisse eingeben" bestätigt oder korrigiert abgespeichert hat.
Damit nicht alle auf dich warten müssen, kannst du auch andere Tipper für die Speicherung oder auch Spielplanänderung im Adminbereich berechtigen.

Re: [BETA] Football Prediction League

Verfasst: 22.05.2016 16:55
von silberfuchs
Super, jetzt jetzt klappt's! Danke Dir!

D.h. das muss man auf alle Fälle "manuell" machen.
Du gehst im Adminbereich auf "Teams verwalten", falls du mehrere Ligen hast wählst du die EM-Liga aus und klickst bei dem Team, das als drittplatzierter das
Achtelfinale erreicht hat, auf Einstellungen und setzte "Qualifiziert bis Spieltag:" auf Achtelfinale und speicherst ab.
Dies wiederholst du für alle 4 drittplatzierten.

Re: [BETA] Football Prediction League

Verfasst: 22.05.2016 17:21
von forza sve
Hi. Es wäre vll. sinnvoll kurz und verständlich die Vorgehensweise nach Abschluss der Vorrunde zusammen zufassen und im Startpost zu platzieren....

Re: [BETA] Football Prediction League

Verfasst: 22.05.2016 22:29
von football
Danke für deinen Hinweis.
Ich hoffe es ist verständlich:
Achtung: Im Achtelfinale der EM 2016 sind Korrekturen erforderlich

Falls der Spielplan auf der Demo-Seite zum Achtelfinale nicht aktuell sein sollte, vielleicht ist jemand hier bereit eine XML-Datei oder einen Link auf seine XML mit dem dann aktuellen Achtelfinale bereitzustellen.