Beiträge sind in DB noch GELÖSCHTEN Usern zugeordnet

Fragen rund um die Installation, Administration und Benutzung von phpBB.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Antworten
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Beiträge sind in DB noch GELÖSCHTEN Usern zugeordnet

Beitrag von uwe.ha »

Hallo zusammen,

Google-Webmastertools zeigten mir "Serverfehler" an. Grund:
Einige (ganz alte) Beiträge in der DB waren noch einer poster_id zugeordnet, obwohl der User gar nicht mehr existiert ... und beim Aufruf dieser Post im Forum kommt dann / deshalb SQL-Error ... da hab ich wohl "früher" unsauber User gelöscht ... egal ...

Gibt es ein Tool, das in der DB Tabelle _posts überprüfen kann, ob der unter poster_id genannte User in der Tabelle _users (Feld user_id) überhaupt noch existiert?
... und wenn nicht, dass dann die poster_id auf "1" (1 = Gast) gesetzt wird.

DANKE!
Uwe
Lehrling
Ehemaliges Teammitglied
Beiträge: 3833
Registriert: 15.01.2012 20:00
Kontaktdaten:

Re: Beiträge sind in DB noch GELÖSCHTEN Usern zugeordnet

Beitrag von Lehrling »

Du könntest auch erst einmal probieren, ob du die Sache über das Synchronisieren der Foren hinbekommst. Gehe dazu in den Administrationsbereich zu Foren - Foren verwalten und klicke dann bei dem entsprechenden Forum (allen Foren) auf diese orangefarbenen Pfeile rechts.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Beiträge sind in DB noch GELÖSCHTEN Usern zugeordnet

Beitrag von gn#36 »

Ein Tool gibt es meines wissens nicht, aber eine einfache SQL Abfrage gibt's:

Code: Alles auswählen

SELECT post_id FROM phpbb_posts p
LEFT JOIN phpbb_users u ON p.poster_id = u.user_id
WHERE u.username IS NULL
Das sollte für alle Posts in der Usertabelle nachsehen ob ein User existiert, der zur poster_id passt. Wenn es den nicht gibt ist der username nicht vorhanden und die post_id wird ausgegeben.

Bitte einmal ausprobieren ob das stimmt, indem du ein paar von den ausgegebenen Post IDs im Forum aufrufst mittels: www.example.com/forumpfad/viewtopic.php?p=post_id
Wenn da der Fehler kommt dann sollte die Abfrage korrekt funktioniert haben. Bitte dann auf jeden Fall erst mal ein Backup machen. Dann kannst du mit

Code: Alles auswählen

UPDATE phpbb_posts p SET p.poster_id = 1 WHERE post_id IN (SELECT post_id FROM phpbb_posts po LEFT JOIN phpbb_users u ON po.poster_id = u.user_id WHERE u.username IS NULL)
alle posts dem ANONYMOUS zuordnen (Achtung, diese Abfrage ist vermutlich relativ langsam). Das gleiche musst du ggf. aber noch mit den topics machen, hier betrifft das ggf. mehr spalten, weil es ja auch noch sowas wie last_poster_id gibt. Abgesehen von der poster_id auch hier müsste sich das aber auch mittels synchronisation im ACP beheben lassen.
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.
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Re: Beiträge sind in DB noch GELÖSCHTEN Usern zugeordnet

Beitrag von uwe.ha »

Hallo,

habe nun mal alles synchronisiert ... hat nach 14 Jahren sicherlich nicht geschadet ;-)
... aber das Problem nicht behoben, trotzdem Danke Lehrling für die Idee!

Hab dann die SQL-Abfrage gemacht. Ja, hat alle Posts gefunden.
Da es nur 20 Posts von 4 Usern waren, hab ich die Änderungen in der DB manuell gemacht:
Hab in _posts die entsprechende poster_id auf 1 gesetzt,
und in _topics die topic_poster und topic_last_poster_id (sofern es die gelöschten user betraf) auch auf 1 gesetzt.

Das müsste es gewesen sein, oder gibt es außer poster_id, topic_poster und topic_last_poster_id sonst noch Stellen, die ich ggf. korrigieren müsste?

DANKE!!
Uwe
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Beiträge sind in DB noch GELÖSCHTEN Usern zugeordnet

Beitrag von gn#36 »

Ich glaube höchstens noch, wenn das Thema in irgend einem Forum das neueste Thema ist, dann landet es noch in der forums Tabelle. Das kannst du im Zweifel am leichtesten durch erstellen (und ggf. anschließendes Löschen) eines neuen Posts beheben.

Du könntest höchstens noch Überbleibsel deiner gelöschten User in irgendwelchen Tabellen übrig haben, sofern du nicht alles entfernt hast, z.B. in den acl Tabellen oder den custom profile fields.
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.
Antworten

Zurück zu „Support-Forum“