Die Lösung wurde erfolgreich unter WoltLab Burning Board 2.3.4 getestet.
Aufgabe:
Dem aktiven User Max sollen die Postings des gelöschten Users Fritz zugeordnet werden.
Theoretischer Hintergrund:
Das Löschen eines aktiven Users erfolgt im wbb durch Zuweisung der User-ID 0. Wurden mehrere User gelöscht bekommen die Posts alle die User-ID 0 und können darüber nicht mehr separiert bearbeitet werden.
Wie aber zu sehen ist, bleibt jedem Posting der Autorenname erhalten, auch wenn dessen Ersteller bereits gelöscht wurde.
Lösung:
Wir öffnen die mysql-Datenbank des Forums:
mysql
mysql>USE forum_db_name -user db_username -pdb_user_password;
Wir lassen uns die in der Datenbank enthaltenen Tabellen anzeigen:
mysql>SHOW TABLES;
Unter anderem finden wir die Tabelle bb1_posts, ein guter Name für einen Kandidaten, der Postings ihren entsprechenden Autorennamen zuordnen soll.
Wir betrachten die tabelle bb1_posts näher:
mysql>SHOW COLUMNS FROM bb1_posts;
und finden nebst mehreren weiteren die Spalten userid und username.
Wir wissen: Alle gelöschten User haben die User-ID (userid) Null, aber der Autorenname (username) bleibt dennoch in den Postings verewigt.
Angenommen, User Max besitzt die User-ID 52, dann bescheren wir ihm durch
mysql>UPDATE bb1_posts SET userid=52 WHERE username="Fritz";
alle Posts des nicht mehr vorhandenen Fritz.
Natürlich stimmt nun die in seinem Avatar angezeigte Beitragsanzahl nicht mehr. Ein Vergleich der in der Datenbank enthaltenen Tabellennamen legt den Verdacht nahe, dass die Tabelle bb1_users Speicherort für diese Info ist. Diese enthält weiterhin eine Spalte mit der verräterischen Überschrift userposts. Ein idealer Name für einen deratigen Zweck, nicht wahr?
Mit
UPDATE bb1_users SET userposts=??? WHERE userid=52;
lässt sich der Wert korrigieren.
Woher wissen wir aber die korrekte Summe aller alten und neu zugeordneten Posts?
Die Foren-SW zählt sie für uns, indem wir in der Mitgliederliste den entsprechenden Suche-Button neben Max bemühen.