Beiträge landen im falschen Thread

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
SARL-Toffi
Mitglied
Beiträge: 4
Registriert: 12.09.2007 16:02

Beiträge landen im falschen Thread

Beitrag von SARL-Toffi »

Hallo liebe Forengemeinde,

seit wir mit unserem Forum umgezogen sind treten einige seltsame Fehler auf. Auf den ersten Blick schien der Umzug der Datenbank erfolgreich geklappt zu haben. Alle alten Threads und Beiträge waren da, wo sie auch hingehörten.

Seit dem aber einige neue Beiträge, Threads und Foren entstanden sind, treten mir nicht erklärbare Posting-Fehler auf. Erstellt man bspw. einen Beitrag, so landet der Beitrag plötzlich in einem völlig falschen Thread. Erstellt man einen Thread, so erscheint zwar der Thread im Forum, klickt man allerdings auf den Thread drauf, landet man wieder in einem falschen Thread.

Da ich als absoluter Laie auf diesem Gebiet bereits froh war, als ich es geschafft habe, das Forum von A nach B zu übertragen, bin ich bei diesen Problem definitiv am Ende mit meinem Latein.
Trotz allem habe ich aber einige Blicke via PhpMyAdmin in die Datenbank geworfen. Denn nach einigen Stunden googlen war es klar, dass das Problem irgendwo bei den IDs in der Datenbank liegt. Leider werd ich aus vielen Dingen in der Datenbank nicht schlau. Alle mir angezeigten Fehler hab ich bereits beseitigt, Tabellen-Einträge mit doppelten IDs hab ich auch schon gefunden und versucht zu reparieren, die DB-Maintenance hab ich installiert und alle Punkte ausprobiert - doch alles ohne Erfolg! Die Fehler treten weiterhin auf.
Und da ich nicht noch mehr in der Datenbank kaputt machen will (was ich bisher mit Sicherheit schon getan habe), wende ich mich mit meinem Problem nun an die Experten.

Kurze Info noch: Das Forum basiert auf phpBB 2.0.17

Ich bedanke mich schonmal bei allen die sich die Zeit genommen haben, sich mit meinem Problem zu beschäftigen.

Viele Grüße,
SARL-Toffi
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Das erste was wir brauchen um dir zu helfen ist ein Link zum Forum, damit man sich das ganze mal ansehen kann. Außerdem wäre es hilfreich zu wissen ob und welche Mods installiert sind und welches Datenbanksystem du verwendest (inklusive der Version).

Sehr zu empfehlen ist außerdem ein Sicherheitsupdate, denn die aktuelle Version ist 2.0.22 und es gab mit Sicherheit einige relevante Updates.

Mein erster Versuch wäre also an dieser Stelle ein Backup mit anschließendem Versionsupdate, mit ein wenig Glück kann das die Datenbankstrukturprobleme schon beheben (ich vermute dass es sich um sowas handelt, denn doppelte ID's sollten eigentlich schon von der Datenbank aus unmöglich sein).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
SARL-Toffi
Mitglied
Beiträge: 4
Registriert: 12.09.2007 16:02

Beitrag von SARL-Toffi »

Ok, hier sind die gewünschten Informationen:

Forum: http://toffi.galaxy-host.de/board (Version: 2.0.22)
Mods: DB Maintenance (Version: 1.3.8 )
Datenbanksystem: MySQL (MySQL-Client-Version: 5.0.32; Server Version: 5.0.32-Debian_7etch1; Protokoll-Version: 10)

Ich hoffe das sind alle Informationen die ihr braucht. Ich weiß leider nicht was davon relevant ist und was nicht.

Das Forum habe ich jetzt auf 2.0.22 geupdatet. Leider besteht der Fehler immer noch. Ich hab dazu testweise im Forum "Off-Topic" einen Thread namens "Test-Thread" erstellt. Wie man sieht, landet man, wenn man auf den Thread draufklickt in einem völlig falschen Thread, in dem sich dann auch der passende Beitrag befindet (Beide enden ja auch mit der gleichen ID: 8 ).

Zusätzlich habe ich bei der Datenbank-Wartung (DB Maintenance) die Funktion "Prüfe Beitrags- und Themen-Tabellen" nochmals durchgeführt.
Hierbei wurden mir folgende Fehler angezeigt und auch angeblich behoben (ich seh aber keine Verbesserung):
Prüfe auf Beiträge mit ungültigem Forum

Beiträge mit ungültigem Forum gefunden:

* 129033: Verschiebe von Forum 'Neuigkeiten' (12) nach 'Jobs und Firmen' (5)
* 129035: Verschiebe von Forum 'Off-Topic' (13) nach 'Firmenkonzepte' (6)
* 8: Verschiebe von Forum 'Firmenkonzepte' (6) nach 'Off-Topic' (13)
Synchronisiere Themen

Aktualisiere Themen:

* Aktualisiere Thema 6 ([12.09.07] Hostwechsel des Game Server und der Website)
Synchronisiere Beitrags-Daten der Foren

Aktualisiere Foren:

* Aktualisiere Forum 5 (Jobs und Firmen)
* Aktualisiere Forum 6 (Firmenkonzepte)
* Aktualisiere Forum 12 (Neuigkeiten)
* Aktualisiere Forum 13 (Off-Topic)
Vielleicht nützt euch diese Information ja noch was.

Vielen Dank schonmal für die Hilfe.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ein solches Problem ist mir noch nicht untergekommen.

Hast du schon probiert alle PHP Dateien gegen neue auszutauschen? Da du ja keine Mods drin hast sollte das ja keine Probleme bereiten.

Ansonsten würde ich an dieser Stelle in der Datenbank schauen, ob dort in den Tabellen phpbb_posts phpbb_posts_text, phpbb_topics die Spalten post_id bzw topic_id jeweils als Primärschlüssel festgelegt sind und bei phpbb_posts und phpbb_topics einen Auto-Increment Eintrag besitzen. Wenn sie das nicht tun, dann solltest du diese anlegen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
SARL-Toffi
Mitglied
Beiträge: 4
Registriert: 12.09.2007 16:02

Beitrag von SARL-Toffi »

Ich habs versucht, aber...

Bei phpbb_post (da wollte ich topic_id als Pimärschlüssel und als auto_increment setzen):
Fehler

SQL-Befehl:

ALTER TABLE `phpbb_posts` DROP PRIMARY KEY ,
ADD PRIMARY KEY ( `topic_id` )

MySQL meldet: Dokumentation
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Fehler

SQL-Befehl:

ALTER TABLE `phpbb_posts` CHANGE `topic_id` `topic_id` MEDIUMINT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT

MySQL meldet: Dokumentation
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Bei phpbb_post_text (da wollte ich den Eintrag topic_id hinzufügen):
Fehler

SQL-Befehl:

ALTER TABLE `phpbb_posts_text` ADD `topic_id` MEDIUMINT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT AFTER `post_id`

MySQL meldet: Dokumentation
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Bei phpbb_topic (da wollte ich den Eintrag topic_id als Primärschlüssel setzen und den Eintrag post_id hinzufügen):
Fehler

SQL-Befehl:

ALTER TABLE `phpbb_topics` DROP PRIMARY KEY ,
ADD PRIMARY KEY ( `topic_id` )

MySQL meldet: Dokumentation
#1062 - Duplicate entry '6' for key 1
Fehler

SQL-Befehl:

ALTER TABLE `phpbb_topics` ADD `post_id` VARCHAR( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT AFTER `forum_id`

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNSIGNED NOT NULL AUTO_INCREMENT AFTER `forum_id`' at line 1
Kurz gesagt: Bei allen Einstellungen trat ein Fehler auf.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ok, anhand der Fehlermeldungen würde ich sagen dass der Fehler in der phpbb_topics Tabelle liegt bei der der Index nicht richtig gesetzt ist. Dadurch treten doppelte ID's auf was dann dazu führt, dass beim Anzeigen des Themas das erste Thema angezeigt wird das gefunden wird mit der gegebenen ID, und das ist eben das falsche.

Du musst jetzt von Hand alle doppelten ID's entfernen (also z.b. durch eine höhere ersetzen). Alle Themen die es doppelt gibt müsstest du beispielsweise so finden können:

Code: Alles auswählen

SELECT * FROM phpbb_topics WHERE count(*) >= 2 GROUP BY topic_id
Danach solltest du den Primärschlüssel eigentlich setzen können, er gehört auf die Tabelle phpbb_topics und die Spalte topic_id. Danach musst du der Spalte noch einen Auto_increment geben, sonst funktioniert das Posten von neuen Themen nicht mehr.

Eine Spalte post_id brauchst du hier nicht, genauso brauchst du keine topic_id in der phpbb_posts_text hinzufügen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
SARL-Toffi
Mitglied
Beiträge: 4
Registriert: 12.09.2007 16:02

Beitrag von SARL-Toffi »

Ok, danke für deine Hilfe.

Ich wollte es grad machen, allerdings scheiterts schon an der Suche der doppelten IDs. PhpMyAdmin wirft folgenden Fehler raus:
Fehler

SQL-Befehl: Dokumentation

SELECT *
FROM phpbb_topics
WHERE count( * ) >=2
GROUP BY topic_id
LIMIT 0 , 30

MySQL meldet: Dokumentation
#1111 - Invalid use of group function
Ich hatte den Befehl von dir ganz normal in das SQL-Eingabefenster eingegeben. Was mach ich falsch?

// Edit:

Stopp! Ich hab's einfach per Hand gemacht. Die doppelten IDs durch noch nicht belegte IDs geändert und dann hats auch geklappt:
SQL-Befehl:
ALTER TABLE `phpbb_topics` DROP PRIMARY KEY ,
ADD PRIMARY KEY ( `topic_id` )
// Edit 2:

Ok, das Problem scheint gelöst zu sein! Ich bedanke mich recht herzlich für deine Hilfe :)

Einen schönen Abend noch!
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“