Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 12. Juni 2018 11:40

Sabine
hat von CMS/ms gehört
Registriert: 13. April 2018
Beiträge: 16

[GELÖST] Debug-Meldung beim Hinzufügen von News

Hallo ihr Lieben,

leider habe ich ein neues Problem beim Bearbeiten einer neu installierten Website. Zur Erinnerung: habe zweimal Lösungen von NaN bekommen bei der Neu-Installation einer Vereins-Website mit Übernahme von bestehenden Inhalten. Es ging zuletzt um das Verschwinden von Bildern in Bildergalerien.

Ich konnte an der ganzen Website bisher noch nicht weiterarbeiten, daher taucht erst jetzt das Problem auf: Wir haben vor einiger Zeit von der alten Website, die zur Zeit noch online ist, über 100 News-Artikel in die neue Datenbank kopiert. Die neu installierte Website liegt zur Zeit noch in einem Unterverzeichnis unserer eigenen Website (für den Übergang und zum Einarbeiten der alten Inhalte in das neue Template). Seitdem kann ich keinen neuen News-Artikel hinzufügen. Denn wenn ich Texte eingefügt habe und dann speichern will, kommt diese Meldung:
___

DEBUG: SQL = INSERT INTO cms_module_news (news_id, news_category_id, news_title, news_data, summary, status, news_date, start_time, end_time, create_date, modified_date,author_id,news_extra,news_url,searchable) VALUES (23,'1','test überschrift','
test inhalt 2
','
test inhalt 1
','published','2018-06-12 11:52:49',NULL,NULL,'2018-06-12 11:53:20','2018-06-12 11:53:20',6,'','',1)
Duplicate entry '23' for key 'PRIMARY'
____

Die Nr. in der letzten Zeile (23), ändert sich mit jedem neuen Versuch ansteigend. Also beim nächsten Versuch steht dann die 24 usw.

Merkwürdig ist, dass es doppelte Einträge geben soll. Wenn wir uns die Datenbank ansehen, können wir da nichts Doppeltes oder "Strubbeliges" erkennen.
Bevor wir die alten News-Artikel in die damals noch leere News-Datenbank kopiert hatten, konnte ich ohne Probleme einen neuen News-Artikel anlegen (damals war es der erste).

Woran könnte das liegen? Habe leider nichts für mich Verständliches oder 100% Passendes über die Suchfunktion gefunden.

Liebe Grüße
Sabine

Offline

#2 12. Juni 2018 13:11

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.138

Re: [GELÖST] Debug-Meldung beim Hinzufügen von News

Wir haben vor einiger Zeit von der alten Website, die zur Zeit noch online ist, über 100 News-Artikel in die neue Datenbank kopiert.

Wie genau seid ihr dabei vorgegangen?
Habt ihr das einzeln über das News-Modul gemacht?
Oder direkt in der Datenbank?

Wenn ihr die News-Artikel direkt über die Datenbank (z.B. mit phpMyAdmin) importiert habt, dann kann es zu diesem Fehler kommen.

Erklärung: Jeder Artikel erhält eine ID. Diese ID ist eine fortlaufende Nummer. Die wird einfach bei jedem neuen Artikel um 1 erhöht. Moderne Datenbanken haben dazu ein sogenanntes Autoincrement-Feld. D.h. das Erhöhen der ID macht die Datenbank automatisch. Ich muss also die ID nicht selber vergeben.

Das News-Modul stammt aber noch aus einer Zeit, zu der es ein solches Autoincrement-Feld nicht immer gab. D.h. die Erhöhung der ID muss das News-Modul selber machen. Woher weiß aber das News-Modul, welches die letzte ID war? Dazu hat es eine sogenannte Sequenz-Tabelle. Dort wird die jeweils letzte vergebene ID eines News-Artikels gespeichert. Wenn ein neuer Artikel erstellt wird, wird dieser Wert ausgelesen, mit 1 addiert, als ID für den Artikel verwendet und wieder in der Sequenz-Tabelle gespeichert. Das ist eine veraltete Technik, die meiner Meinung nach nichts mehr im CMS zu suchen hat - aber was solls.

Wenn Du jetzt einen Haufen News-Artikel am News-Modul vorbei selber in die Datenbank importiert hast, dann steht in dieser Sequenz-Tabelle noch ein völlig falscher Wert drin. Wenn dort z.B. noch der Wert 23 drin steht, dann wird bei einem neuen Artikel dieser Wert erhöht. Und wieder gespeichert. Einen News-Artikel mit der ID 24 gibt es aber schon (weil über die Datenbank importiert). Ergo Fehler. Und das geht so lange, bis in dieser Sequenz-Tabelle ein Wert erreicht wird, der noch nicht als ID für einen anderen Artikel vergeben wurde.

D.h. - um das ganze abzukürzen - dort muss eine Zahl rein, die mindestens genauso groß ist, wie die ID des letzten News-Artikels. Lass Dir dazu mit dem Datenbank-Tool die News-Artikel anzeigen, absteigend nach "news_id" sortiert. Die höchste Zahl im Feld "news_id" trägst Du dann in die Tabelle "[dein prefix]module_news_seq" als Wert für das Feld "id" ein.

Das sollte schon alles sein.

Offline

#3 12. Juni 2018 13:55

Sabine
hat von CMS/ms gehört
Registriert: 13. April 2018
Beiträge: 16

Re: [GELÖST] Debug-Meldung beim Hinzufügen von News

OK, dankeschön. Das Datenbank-Tool ist vermutlich ein Modul, ist es der DBAdminer?

Oder muss ich das in der Datenbank selbst machen? Und ja, wir hatten die Artikel direkt über die Datenbank eingefügt, nicht einzeln über News.

Beitrag geändert von Sabine (12. Juni 2018 14:00)

Offline

#4 12. Juni 2018 15:19

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.138

Re: [GELÖST] Debug-Meldung beim Hinzufügen von News

Das Datenbank-Tool ist vermutlich ein Modul, ist es der DBAdminer?

Nein.
Eigentlich nicht.
Völlig Wurscht, weil:

Oder muss ich das in der Datenbank selbst machen?

Ja.
Mit "Datenbank-Tool" ist halt das Ding gemeint, mit dem ihr die News-Artikel importiert habt.
Ich vermute mal phpMyAdmin. Du musst da deswegen nicht extra noch irgendwas installieren. Ob nun mit einem Modul, oder irgendwas anderem mit dem man direkt an die Datenbank herankommt, ist völlig egal.

Offline

#5 12. Juni 2018 16:26

Sabine
hat von CMS/ms gehört
Registriert: 13. April 2018
Beiträge: 16

Re: [GELÖST] Debug-Meldung beim Hinzufügen von News

Super! Hat geklappt. Mein Mann hat das "irgendwie" über phpMyAdmin gelöst. Er wusste dann anscheinend was zu tun ist, nachdem ich ihm deine Antwort gezeigt habe. Ok... mit sowas hatte er nicht gerechnet und er meint, es sei aber ein Fehler im System. Aber hast du ja schon geschrieben, dass eine veraltete Technik sei.

Diesen DBAdminer hatte ich installiert, aber sofort wieder deinstalliert, da ich schon gesehen habe, dass ich damit nichts anfangen konnte. Es wurde außerdem eine Warnung angezeigt, dass das nicht getestet sei usw. ...

Vielen Dank!  smile

Offline