Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: [DONE] Ergebniseingabe ohne Brettergebnisse

[DONE] Ergebniseingabe ohne Brettergebnisse 8 Jahre 4 Monate her #3015

  • kbaerthel
  • kbaerthels Avatar
  • Offline
  • Administrator
  • Beiträge: 885
  • Dank erhalten: 31
  • Karma: 5
Am 1.Spieltag der neuen Saison hatten wir folgenden Vorfall:
- Ein Mannschaftsleiter wollte melden über Frontend. Nach Eingabe aller Namen (je 8 x Heim und Gast) hat er die Eingabe abgesendet ohne die Partieergebnisse einzutragen. Ein durchaus möglicher Fehler.
- Er versuchte dann die Eingabe erneut und da die bereits eingegebenen Namen nicht aufgeblendet wurden, brach er die Eingabe ab und informierte seinen Staffelleiter. Eine verständliche Reaktion.
- Der Staffelleiter gab das Ergebnis über Backend ein, wobei als Voreinstellung die vom ML eingegebenen Namen erschienen.
- Anschließend waren alle Anzeigen zu dieser Paarung verfälscht.
In meinem Testsystem mit Version 1.1.14 konnte ich alles nachvollziehen!

Weitere Untersuchungen ergaben, die Probleme liegen in der source sent.php:
- allein die Eingabe von Namen führt zum Schreiben von 2 Sätzen pro Partie in die Tabelle clm_rnd_spl, die Felder ergebnis, kampflos und punkte bleiben aber NULL
- das Aufsummieren der Brettpunkte mit Belegung NULL führt dazu, dass die Variable $hmpunkte bzw. $gmpunkte nicht belegt wird, siehe
// Brettpunkte Heim summieren
$query = "SELECT SUM(punkte) as punkte "
." FROM #__clm_rnd_spl "
." WHERE sid = ".$sid
." AND lid = ".$lid
." AND runde = ".$rnd
." AND paar = ".$paarung
." AND dg = ".$dg
." AND heim = 1 "
;
$db->setQuery($query);
$man=$db->loadObjectList();
$hmpunkte=$man[0]->punkte;
- da $hmpunkte bzw. $gmpunkte nicht belegt sind, gelingt das Update von clm_rnd_man nicht, siehe
// Für Heimmannschaft updaten
$query = "UPDATE #__clm_rnd_man"
." SET gemeldet = ".$meldung
." , zeit = '$now'"
." , brettpunkte = ".$hmpunkte
." , manpunkte = ".$hman_punkte
." , wertpunkte = ".$hwpunkte
." WHERE sid = ".$sid
." AND lid = ".$lid
." AND runde = ".$rnd
." AND paar = ".$paarung
." AND dg = ".$dg
." AND heim = 1 "
;
$db->setQuery($query);
$db->query();

Nun geht es im Backend weiter, controller ergebnisse.php:
- die Voreinstellung wird aus clm_rnd_spl geholt, falls vorhanden. Korrekt.
- beim Abspeichern der Eingabe wird unterschieden, ob die entsprechende Paarung in clm_rnd_man bereits als gemeldet gilt (UPDATE der Sätze in clm_rnd_spl) oder nicht (INSERT von Sätzen in clm_rnd_spl)
- in unseren Fall wurde die Paarung fehlerhafter Weise nicht auf gemeldet in clm_rnd_man gesetzt, obwohl schon Sätze in clm_rnd_spl geschrieben wurden, siehe oben zu Frontend
--> es wird nun fehlerhafterweise eine zweite Gruppe von Sätzen in clm_rnd_spl geschrieben
- die doppelten Sätze in clm_rnd_spl führen nun zu vielerlei verfälschten Anzeigen.


Aktuelle Lösung:
durch Bereinigung der Datenbank über phpmyadmin konnte ich die fehlerhaften Anzeigen richtig stellen.
Programmtechnische Lösung:
diese scheint recht einfach. Nach Berechnung von $hmpunkte bzw. $gmpunkte muss die Belegung überprüft werden und die Variable ggf. auf 0 gesetzt werden.
$query = "SELECT SUM(punkte) as punkte "
." FROM #__clm_rnd_spl "
." WHERE sid = ".$sid
." AND lid = ".$lid
." AND runde = ".$rnd
." AND paar = ".$paarung
." AND dg = ".$dg
." AND heim = 1 "
;
$db->setQuery($query);
$man=$db->loadObjectList();
$hmpunkte=$man[0]->punkte;
if (!isset($hmpunkte)) $hmpunkte = 0;

Meine Bedenken:
Die Ergebniseingabe ist eine zentrale Funktion von CLM darf auf keinen Fall gefährdet werden. Inzwischen gibt es viele CLM-Anwendungen und mich wundert, dass dieses Problem noch nicht aufgetreten ist.

Bitte:
Ich bitte Euch insbesondere, das Ausgangsproblem in Gedanken und im System nachzuspielen. Und meine Ausführungen auf Denkfehler zu überprüfen.
Baldige Antworten erwünscht.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

[DONE] Ergebniseingabe ohne Brettergebnisse 8 Jahre 4 Monate her #3016

  • pierre
  • pierres Avatar
  • Offline
  • Administrator
  • Beiträge: 956
  • Dank erhalten: 28
  • Karma: 9
ich habe das auch schon praktiziert...
aufstellungen von einem mannschaftsspiel abspeichern, ohne die angabe vom ergebnis.
- allerdings nicht vom FE aus, sondern gleich vom BE aus.

- da scheint es dann so zu laufen, dass immer das ergebnis 1-0 eingesetzt wird, wenn noch kein ergebnis speziel angewählt ist. durch dieses Glück bin ich in diesem zusammenhang auch noch nicht direkt auf dieses problem gelaufen.

- in einer weiteren BE-ergebniseingabe waren dann die gespielten Ergebnisse eingebbar, ohne phpmyadmin zu bemühen.


.... allerdings hatte ich am ende der letzten saison auch schon das problem dass doppelte datensätze von paarungen in der DB waren. das führte dann auch zu diversen falschen darstellungen (gleich spielernamen auf mehreren brettern hintereinander, war ein problem) mit klaus seiner hilfe konnte die DB damals wieder bereinigt werden. Es war damals aber nicht so recht erklärlich, wie die doppelten einträge entstanden sein könnten.

vielleicht haben wir jetzt eine erklärung dafür... vielleicht gibt es aber auch noch eine andere möglichkeit wie das passieren kann. es liegt jetzt doch schon ein paar monate zurück. so dass es heute schwerfällt die details zu rekonstruieren. es fiel mir nur wieder ein, weil klaus jetzt danach gefragt hat.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

[DONE] Ergebniseingabe ohne Brettergebnisse 8 Jahre 4 Monate her #3017

  • petert
  • peterts Avatar
  • Offline
  • Platinum Boarder
  • Beiträge: 388
  • Dank erhalten: 1
  • Karma: 0
wir hatten schon zwei mal das Problem von verschobenen Paarungen nach Eingaben im Frontend und danach im Backend Korrekturen oder auch nur Ansicht. Damals war Thomas der Meinung, dass es mit der Vorbelegung zusammen hängt. Er hatte erwägt diese total weg zu nehmen was ich als sehr vernünftig ansehe.
Bitte um Beachtung
Der Administrator hat öffentliche Schreibrechte deaktiviert.

[DONE] Ergebniseingabe ohne Brettergebnisse 8 Jahre 4 Monate her #3022

  • TSchwietert
  • TSchwieterts Avatar
  • Offline
  • Administrator
  • Beiträge: 1025
  • Dank erhalten: 4
  • Karma: 13
Hallo alle,

Da ja langes Wochenende ist und ich ein wenig Zeit habe werde ich mich dieser Sache annehmen. Höher könnte die Priorität nicht sein, da -wie Klaus richtig sagt- eine Kernfunktion betroffen ist.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

[DONE] Ergebniseingabe ohne Brettergebnisse 8 Jahre 4 Monate her #3062

  • kbaerthel
  • kbaerthels Avatar
  • Offline
  • Administrator
  • Beiträge: 885
  • Dank erhalten: 31
  • Karma: 5
Änderung im repository
siehe
Email-Parameter und Ergebniseingabe
www.chessleaguemanager.de/index.php?opti...6&id=2964&Itemid=148
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.075 Sekunden
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Ok