Seite 1 von 1

Mit sql-Befehl alle Thraeds eines Users ändern

Verfasst: 25.09.2004 17:01
von thyphon
Hallo zusammen,

ich habe bei mir einen User, der die Löschung seines Accounts verlangt hat, dem bin ich nachgekommen. Nun möchte er auch noch, dass alle seine Postings gelöscht werden. Ich möchte diese aber nicht nur löschen, sondern dort einen Hinweis auf meine überarbeiteten Regeln hinweisen (in denen steht das in zukunft keinen postings von ehemaligen usern gelöscht werden).

So nun meine Frage: Kann ich das über ein sql-statement machen?

Danke für hilfe!!

Gruß Tobias

PS: Ich möchte nicht über Sinn oder Unsinn dikutieren, sonst hätte ich im OT bereich gepostet.

Verfasst: 25.09.2004 17:08
von PhilippK
Nachdem du jetzt die IDs des Users rausgeschmissen hast, wird das sehr schwierig...
Steht denn der Benutzernamen in den Beiträgen noch drin?

Gruß, Philipp

Verfasst: 25.09.2004 17:10
von thyphon
Ja, der steht noch drin.

Dazu hier auch ne Anfrage: http://www.phpbb.de/viewtopic.php?t=65952

Gruß
Tobias

Verfasst: 25.09.2004 17:18
von Blutgerinsel
ehm du solltest wissen welche UserID derjenige hatte ansonsten sieht es schlecht aus.....

[LÖSCHEN]
zu bearbeiten ist topic,posts,post_text jeweils als Ausschluss die UserID mit den entsprechenden Feldern.....
Hier sollte der Topic Counter an Antworten entsprechend geupdatet werden. Und der bei den Mods die kenntlich machen wer als letztes gepostet hat die lastposting ID angepasst werden.

[Zum Hinweissetzen:]
bedarf es der Änderung in der posts_text hier muss vorher natürlich die richtige posting ID gefunden werden welcher man via table posts rausfinden könnte. Und das entsprechende Update zusammengebastelt werden. So ganz ohne Pufferung findest du das nicht heraus.
Ein Insert,Update und Delete kann mit einer TableRelation ala left join und seinen Kumpanen nicht in Verbindung gebracht werden......

Du willst nicht über Unsinn und Sinn diskuttieren....nun gut es ist unsinnig schließlich kann ich ohne Eintrag in der User Table nicht mehr auf die jeweilige Person referenzieren. Da ist nur ein Nick und der ist anonym.

Verfasst: 25.09.2004 17:27
von thyphon
Blutgerinsel hat geschrieben:ehm du solltest wissen welche UserID derjenige hatte ansonsten sieht es schlecht aus.....
schei..., hab ich mir gedacht
Blutgerinsel hat geschrieben:[LÖSCHEN]
zu bearbeiten ist topic,posts,post_text jeweils als Ausschluss die UserID mit den entsprechenden Feldern.....
Hier sollte der Topic Counter an Antworten entsprechend geupdatet werden. Und der bei den Mods die kenntlich machen wer als letztes gepostet hat die lastposting ID angepasst werden.

[Zum Hinweissetzen:]
bedarf es der Änderung in der posts_text hier muss vorher natürlich die richtige posting ID gefunden werden welcher man via table posts rausfinden könnte. Und das entsprechende Update zusammengebastelt werden. So ganz ohne Pufferung findest du das nicht heraus.
Ein Insert,Update und Delete kann mit einer TableRelation ala left join und seinen Kumpanen nicht in Verbindung gebracht werden......
So ganz hab ich das jetzt nicht verstanden. Tatsache ist, das nach wie vor, der Username neben den Posts erscheint, darüber müsste doch eine Zuordnung möglich sein, oder?
Blutgerinsel hat geschrieben:Du willst nicht über Unsinn und Sinn diskuttieren....nun gut es ist unsinnig schließlich kann ich ohne Eintrag in der User Table nicht mehr auf die jeweilige Person referenzieren. Da ist nur ein Nick und der ist anonym.
Ich möchte nicht darüber diskutieren, ob ich das wirklich machen muss, nur weil er das verlangt.
Einer diskussion, die mich einen Schritt weiter in meiner Frage bringt, bin ich natürlich aufgeschlossen.

Gruß Tobias

Verfasst: 25.09.2004 17:39
von thyphon
Hab jetzt noch mal ein wenig geforscht:

In der Tabelle "phpbb_posts" steht als "post_username" ja der Name drin.

Damit hab ich jetzt schon mal die "post_id". Über die bekomme ich ja in der Tabelle "post_text" das posting raus und kann somit den "post_text" updaten.

Muss also "nur" ein kleines Script schreiben..

Irgendwelche einwände?

Gruß Tobias

Verfasst: 25.09.2004 17:52
von thyphon
Noch was: Da er der erste user ist, der gelöscht wurde ist der auch der einzige, der die "poster_id = -1" hat.


Gruß Tobias

Verfasst: 25.09.2004 18:03
von PhilippK
Der Weg über die user_id geht bei dir zwar auch - aber der Weg über die post_username dürfte der einfachere und bessere sein. Versuch mal folgendes:

Code: Alles auswählen

UPDATE phpbb_posts_text
  SET bbcode_uid = '',
    post_subject = '',
    post_text = 'Neuer Text für den Beitrag'
  WHERE post_id IN (SELECT post_id FROM phpbb_posts WHERE post_username = 'name des benutzers')
Dürfte aber erst mit MySQL 4 funktionieren...

Gruß, Philipp

Verfasst: 25.09.2004 18:08
von thyphon
Danke, werds mal testen und berichten, obs funktioniert hat.

Gruß Tobias

Verfasst: 25.09.2004 23:31
von Dennis63
Um mal was "Rechtliches" zu nennen: Jeder User hat das recht GELÖSCHT zu werden, damit seine persönlichen Daten verschwinden.
KEIN User hat das Recht, zu verlagen, daß seine Beiträge gelöscht werden. Eine Internetseite ist ein öffentliches Medium. Wer etwas öffentlich Schreibt, ist auch mit der veröffentlichung einverstanden.

Wenn Du in eine Talkshow gehst, kannst Du auch nicht die Ausstrahlung verhindern, nur weil Du Dich doof angestellt hast.
Wenn Du zufällig in einer Menschengruppe Fotografiert wurdest, kannst Du nicht verhindern, daß das Foto in der Zeitung erscheint, wenn es um die Gruppe oder den Hintergrund geht.
Wenn Du beim Gewinnspiel im Radio Anrufst, kannst Du nicht verhindern, daß Dein Anruf Live/Verzögert im Radio zu hören ist.

Grüße
Dennis