löschen von Usern mit Filter nach "lastvisit" - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: MyBB 1.8.x (https://www.mybb.de/forum/forum-87.html) +--- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-88.html) +--- Thema: löschen von Usern mit Filter nach "lastvisit" (/thread-37439.html) |
löschen von Usern mit Filter nach "lastvisit" - crurer - 22.09.2020 Hallo Forumsadmin's, ich betreibe ein relativ überschaubares Forum mit derzeit ca. 550 angemeldeten Benutzern. Gerne würde ich alle Benutzer löschen, die sich z.B. die letzten 4 Jahre nicht mehr im Forum angemeldet haben. Leider habe ich im CP Admin keine Funktion finden können um nach letzter Aktivität Benutzer zu listen bzw. zu filtern. Gibt es ein schon bekanntes SQL query mit dem ich z.B. alle Benutzer ohne deren Beiträge löschen kann die sich z.B. letztmalig bis zum 31.12.2017 angemeldet haben? Ich denke mal es wird nur die mybb_users Tabelle angefasst werden müssen. Macht mein Vorhaben überhaupt Sinn oder habe ich etwas wichtiges übersehen wegen unschönen Seiteneffekten. Danke im voraus und Gruß - Chris RE: löschen von Usern mit Filter nach "lastvisit" - Schnapsnase - 22.09.2020 Das geht eigentlich ohne Query und ohne großen Aufwand. ACP -> Benutzer und Grupen -> Benutzer finden Hier kannst Du unten nach letzte Aktivität - aufsteigend sortieren. Benutze dann die Tabellen-Ansicht. So kannst Du ganze Seiten mit Benutzern auswählen und löschen. Wenn Du nur die Benutzer löschst bleiben die Beiträge incl. Benutzernamen erhalten. Die gelöschten Benutzer haben dann lediglich den Status/Gruppenzugehörigkeit "Gast". RE: löschen von Usern mit Filter nach "lastvisit" - Gerti - 22.09.2020 Variante 1 via ACP (Anlehnung an Beitrag von Schnapsnase) Zitat:ACP > Benutezr & Gruppen > ganz rechts Ansichten > Ansichten verwalten > Optionen > Ansicht bearbeiten Variante 2 via SQL-Befehl: (als Anregung) PHP-Code: DELETE FROM `mybb_users` WHERE postnum=0 AND regdate<1514588399 >> Es können wahlweise verschiedene und/oder mehrere Auswahlkriterien definiert werden RE: löschen von Usern mit Filter nach "lastvisit" - crurer - 23.09.2020 (22.09.2020, 16:53)Schnapsnase schrieb: Das geht eigentlich ohne Query und ohne großen Aufwand....super und danke. Genau das hatte ich komplett übersehen, da ganz unten nur über die Auswahlbox "Letzte Aktivität" sichtbar gemacht werden kann. Gruß Chris RE: löschen von Usern mit Filter nach "lastvisit" - frostschutz - 23.09.2020 Falls es Unterforen gibt, deren Beiträge nicht mitgezählt werden, kann man mit postnum=0 allerdings auch den falschen erwischen. Einfach so Einträge aus der users Tabelle zu löschen kann auch Probleme machen. Da gibt es neben posts noch weitere Abhängigkeiten zu anderen Tabellen. RE: löschen von Usern mit Filter nach "lastvisit" - itsmeJAY - 23.09.2020 Die Abhängigkeiten bzw. Fremdschlüssel lassen sich auch so mit einem normalen Delete über das ACP nicht löschen, sofern diese in der Funktion delete_user() nicht berücksichtigt wird. Ich denke aber der Autor hat schon eine Lösung gefunden. RE: löschen von Usern mit Filter nach "lastvisit" - StefanT - 23.09.2020 frostschutz hat wahrscheinlich auch nicht Plugins gemeint, sondern die ganzen anderen Tabellen des MyBB. RE: löschen von Usern mit Filter nach "lastvisit" - frostschutz - 23.09.2020 (23.09.2020, 14:42)itsmeJAY schrieb: Die Abhängigkeiten bzw. Fremdschlüssel lassen sich auch so mit einem normalen Delete über das ACP nicht löschen, sofern diese in der Funktion delete_user() nicht berücksichtigt wird. Ist doch eben gerade genau das was delete_user() macht? Fürs einfache Löschen werden da zig Datenbanktabellen angefasst und zudem noch Plugin-Hooks aufgerufen, sodass etwaige Plugins ihren benutzerbezogenen Krempel auch aufräumen können. Anschließend werden denn noch Caches erneuert. Wenn dann was nicht stimmt dann ist es ein Bug (in MyBB oder -Plugins) aber an der Datenbank direkt hantieren berücksichtigt sowas halt gar nicht. Das sollte man nur machen wenn man sich wirklich auskennt (und eigentlich selbst dann nicht). RE: löschen von Usern mit Filter nach "lastvisit" - itsmeJAY - 23.09.2020 Das ist richtig. So war das auch von mir gemeint. Lieber die dafür vorgesehenen Funktionen nutzen anstatt unsauber in der Datenbank über Abfragen zu arbeiten. Einst wurde die Programmierung mit entsprechender Logik versehen um dies nicht tun zu müssen. Möglich wäre auch eine Implementierung der Funktionen (oder Klassen) in eine eigene PHP Datei und anschließend die Funktion delete_user() aufrufen mit den erwarteten Parametern. Aber naja... viele Wege führen nach Rom. |