Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: SQL Fehler beim Speichern eines Teamergebnisses

SQL Fehler beim Speichern eines Teamergebnisses 1 Jahr 2 Monate her #6693

  • WdC
  • WdCs Avatar
  • Offline
  • COM_KUNENA_SAMPLEDATA_RANK2
  • Beiträge: 27
  • Karma: 0
Joomla! 4.3.4
PHP 8.2.8 (auch bei nun erfolgtem Rückfall auf PHP 8.1.stable)
Maria-DB 10.4.30
Apache unter Linux
CLM Komplettpaket 4.1 mit Hauptkomponente 4.1.0, (4.1.1), 4.1.1a oder 4.1.1b.

Ich habe die Meldelisten und Paarungen etc. aus WinSwiss 9.38 importiert, aber nachbearbeitet.
Danach soll CLM aber ohne weitere Importe laufen, sondern normal direkt administriert werden, ggf. später auch per Ergebnismeldung durch die Vereine.

Beim Speichern eines Mannschaftskampfes kommt es im Backend als CLM Administrator (meistens?) zu einem SQL-Fehler:
Es ist ein Fehler aufgetreten.
    1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' manpunkte = 0 , wertpunkte = 0 , comment = '' , icomment = '' , tln_nr = 5 ,...' at line 1 

Call stack
# 	Function 	Location
1 	() 	JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:141
2 	Joomla\Database\Mysqli\MysqliStatement->__construct() 	JROOT/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:1089
3 	Joomla\Database\Mysqli\MysqliDriver->prepareStatement() 	JROOT/libraries/vendor/joomla/database/src/DatabaseDriver.php:1900
4 	Joomla\Database\DatabaseDriver->setQuery() 	JROOT/administrator/components/com_clm/controllers/ergebnisse.php:1327
5 	CLMControllerErgebnisse->save() 	JROOT/libraries/src/MVC/Controller/BaseController.php:678
6 	Joomla\CMS\MVC\Controller\BaseController->execute() 	JROOT/administrator/components/com_clm/clm.php:552
7 	require_once() 	JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:71
8 	Joomla\CMS\Dispatcher\LegacyComponentDispatcher::Joomla\CMS\Dispatcher\{closure}() 	JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:73
9 	Joomla\CMS\Dispatcher\LegacyComponentDispatcher->dispatch() 	JROOT/libraries/src/Component/ComponentHelper.php:361
10 	Joomla\CMS\Component\ComponentHelper::renderComponent() 	JROOT/libraries/src/Application/AdministratorApplication.php:143
11 	Joomla\CMS\Application\AdministratorApplication->dispatch() 	JROOT/libraries/src/Application/AdministratorApplication.php:186
12 	Joomla\CMS\Application\AdministratorApplication->doExecute() 	JROOT/libraries/src/Application/CMSApplication.php:293
13 	Joomla\CMS\Application\CMSApplication->execute() 	JROOT/administrator/includes/app.php:61
14 	require_once() 	JROOT/administrator/index.php:32
Der Administrator hat öffentliche Schreibrechte deaktiviert.

SQL Fehler beim Speichern eines Teamergebnisses 1 Jahr 2 Monate her #6694

  • kbaerthel
  • kbaerthels Avatar
  • Offline
  • COM_KUNENA_SAMPLEDATA_RANK_ADMIN
  • Beiträge: 1058
  • Dank erhalten: 47
  • Karma: 6
Zur Untersuchung des Fehlers ist die Bereitstellung der Datenbasis hilfreich bis notwendig. Ein aktueller Akeeba-Abzug bzw. ein temporärer Admin-Zugang zur Webseite würde die Analyse wesentlich erleichtern. Eine Übermittlung per PN oder Mail ist angebracht.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

SQL Fehler beim Speichern eines Teamergebnisses 1 Jahr 2 Monate her #6695

  • kbaerthel
  • kbaerthels Avatar
  • Offline
  • COM_KUNENA_SAMPLEDATA_RANK_ADMIN
  • Beiträge: 1058
  • Dank erhalten: 47
  • Karma: 6
Danke für den Zugang, hat funktioniert und die Untersuchung ermöglicht.
Wahrscheinlich durch einen ungünstigen SWT-Import sind alle Ergebnisse auf „gemeldet“ gesetzt. Siehe z.B. www.schachjugend-niederrhein.de/administ...runde=1&dg=1&liga=20
In der DB liegen aber keine Ergebnisse vor! Durch den Marker „gemeldet“ wertet CLM die Eingabe als Korrektur, es ist aber nichts in der DB, was korrigiert werden könnte.
Mit solch einer außergewöhnlichen Datenkonstellation rechnet CLM nicht und es führt zum Fehler.

Lösungsweg 1
Da offensichtlich bei Euch alles im Adminbereich erfolgt, wäre möglich:
-jeweils direkt vor der Ergebniseingabe das nicht vorhandene Ergebnis zu löschen. Die Löschaktion setzt den Marker zurück und löscht ev. vorhandene Ergebnisse
-anschließend normale Eingabe des Ergebnisses
Diesen Ansatz habe ich gerade getestet, er scheint mir überschaubar.

Lösungsweg 2
Der SWT-Import ist sehr wahrscheinlich mit einer Turnierdatei erfolgt mit aktueller Runde 7, d.h. der Wettkampf ist gelaufen und vorbei. Das allerdings in der Datei keine Ergebnisse stehen, stört SwissChess nicht, es kann ja Gründe dafür geben, wie Ausfall u.ä.
2a
Ein möglicher Ansatz wäre die SWT-Datei zu korrigieren und mit aktueller Runde 0 einzulesen, anschl. die Runden mit einer CLM-Funktion die Runden neu anzulegen. Nachteil: die Runden-Termine müssen neu angelegt werden.
2b
Ein anderer möglicher Ansatz wäre die SWT-Datei zu korrigieren und mit aktueller Runde 1 einschl. Paarungen der Runde 1 und ggf. auch mit Ergebnissen der Runde 1 einzulesen. Und über die Saison alles in SwissChess zu tun und nach jeder Runde die SWT-Datei einzulesen.



Anmerkungen
-Wurde Euer gemischtes Vorgehen von SWT-Import und Eingaben im CLM im Vorfeld getestet? Es entspricht nicht den Standard.
-Laut Euer Webseite liegen die Ergebnisse auf ChessResults vor. Es sollte also SWT-Dateien mit Ergebnisse geben. Warum können diese Dateien nicht zum Import verwendet werden?
-Die möglichen Lösungswege unter 2 habe ich heute nicht getestet. Ich bin auch kein Fan von ständigen SWT-Imports, da das den eigentlichen Grundgedanken des Verteilten Arbeitens von Admin/SL/MF nicht entspricht.
-Der SWT-Import im CLM wurde vor allem geschaffen, um Turniere im Web auf CLM-Installation darzustellen, z.B. ein Wochenend-Turnier wird vor Ort mit SwissChess abgewickelt und anschließend eingelesen.
-Unabhängig von Euren weiteren Aktivitäten werden wir als CLM-Team die Routine der Ergebniseingabe weiter qualifizieren, um zumindest mit einer ordentlichen Meldung zu reagieren, wenn versucht wird, nicht vorhandene Ergebnisse zu korrigieren.
-Wenn es keine bestimmten Gründe gibt, sollten Testpakete nicht auf produktiven Webseiten eingesetzt werden. Test(!)pakete sind nicht immer ausgereift.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: WdC

SQL Fehler beim Speichern eines Teamergebnisses 1 Jahr 2 Monate her #6696

  • WdC
  • WdCs Avatar
  • Offline
  • COM_KUNENA_SAMPLEDATA_RANK2
  • Beiträge: 27
  • Karma: 0
Herzlichen Dank für den äußerst kompetenten, ehrenamtlichen und engagierten und super schnellen Support!

Ich hatte schon befürchtet, dass sich der experimentelle Import aus SwissChess und unser Vorgehen danach beißen. Jetzt kenne ich die Ursache und Lösungswege. Besser geht es nicht!!!
Der Administrator hat öffentliche Schreibrechte deaktiviert.

SQL Fehler beim Speichern eines Teamergebnisses 1 Jahr 1 Monat her #6709

  • pierre
  • pierres Avatar
  • Offline
  • COM_KUNENA_SAMPLEDATA_RANK_ADMIN
  • Beiträge: 1075
  • Dank erhalten: 35
  • Karma: 10
vielleicht noch eine kurze Anmerkung :)

was Klaus ausgeführt hat ist voll und ganz richtig.

Die Art eures Vorgehens ist aber auch nicht verkehrt und funktioniert.
wenn....

es ist vor dem SWT-import darauf zu achten,
mit welcher Runde die swt-datei abgespeichert wird.

wenn also z.B. die swt-Datei dazu dienen soll, vorbereiteten Konfigurationen,
Mannschaftsaufstellungen, Paarungen, etc. schnell in den CLM zu bringen, so ist das ok.

Die swt-Datei soll dabei aber auf der höchsten Runde abgespeichert werden, wo schon Ergebnisse eingetragen sind.
Danach sind im CLM lediglich die Runden oberhalb im Rundenmanager freizugeben, damit diese Termine auch gezeigt werden.

Sind noch gar keine Ergebnisse eingetragen, so ist die swt-Datei vor dem Abspeichern auf Runde 1 zu stellen. und dann zu importieren.
Hatte die swt-datei noch gar keine Ergebnisse beinhaltet, auch nicht in Runde 1,
- so sind wie oben nach dem import die Runden im Rundenmanger freizugeben.

Desweiteren sind bei der ersten Runde die Ergebnisse im Backend anzuwählen,
und bei jeder Paarung ist das "dummy-Ergebnis" zu löschen.

Danach können wie gewohnt im Frontend auch für alle Runden Ergebnisse gemeldet werden.
Ebenso sind auch Ergebniseingaben im Backend in allen Runden möglich.

viel Erfolg :)
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.094 Sekunden

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.