Seite 1 von 1

SQL-Befehl um PNs zu löschen

Verfasst: 02.07.2013 15:58
von fontane
Hallo,

ein User bat mich, einige PNs im Zeitraum von/bis zu löschen. Erst sgte ich ihm, er kann PNs ja selber löschen. Da er aber über 1000 PNs in seinem Postfach hat, verstehe ich sein Anliegen nun doch.

Beispiel:
User XYZ hat PNs in der Zeit vom 01.01.2013 bis 30.06.2013 erhalten.

Anfrage:
1. gelöscht haben möchte User XYZ die PNs in der Zeit vom 01.02.2013 bis 30.04.2013
2. alle PNs welche er im Zeitraum 01.05.2013 bis 31.05.2013 von User ABC erhielt.

Würde mir jemand die etwa erforderlichen SQL-Befehle dazu angeben?

Vielen Dank vorab für eine Hilfestellung.

Re: SQL-Befehl um PNs zu löschen

Verfasst: 02.07.2013 16:26
von AYYILDIZLAR
Hallo,

Die Antwort hier ist jetzt nur meine persönliche Meinung und ich hoffe du verstehst mich nicht falsch, ich möchte mich nicht in die Administration deines Forums einmischen.

Warum willst du das für dein/e Mitglied/er machen? Was ist, wenn irgendwas verkehrt läuft? Du gibst versehentlich die verkehrte user_id oder den verkehrten Zeitraum ein und dann? Du übernimmst die Verantwortung dafür bzw. der User ist sauer/enttäuscht oder wie auch immer. Ausserdem, wo soll das hinführen? Der nächste kommt und will dann vom 23.12.2011 - 01.04.2012 die pn's aus seinem Postfach von Mitglied xy gelöscht haben. Willst du das dann auch machen? Ich hätte persönlich gar nicht die Zeit und die Lust dazu, die pn's verschiedener Mitglieder zu löschen und mich der Gefahr auszusetzen mir aus welchem Grund auch immer die Datenbank zu zerschiessen. Ich persönlich würde das nicht machen wollen.

Die pn's sind Privat Nachrichten und somit ist der User selbst verantwortlich für das Löschen oder nicht Löschen seiner pn's. Er/Sie könnte ja mehrere pn's gleichzeitig anhaken und so löschen und du bräuchtest deine Zeit nicht für solche Sachen aufopfern.

Wie gesagt, das ist nur meine persönliche Meinung und wie du das handhabst ist natürlich ganz alleine deine Sache.

Grüße

Re: SQL-Befehl um PNs zu löschen

Verfasst: 02.07.2013 18:27
von Lehrling
Hallo,

es ist weitaus weniger Aufwand, wenn der User seine PNs selbst löscht, als wenn du sie über die Datenbank löschst. Außerdem kann das Löschen über die Datenbank zu Fehlern führen.
Wir hatten mal den Fall, dass unsere Datenbank einem Hacker zum Opfer fiel und er wahllos PNs gelöscht hatte und zwar in der Tabelle privmsgs. Das führte dazu, dass bei manchen unserer Usern Phantom-PNs abgezeigt wurden. Das bedeutet, dass z.B. gemeldet wurde, dass eine neue PN da sei, man diese aber nicht abrufen konnte, da sie ja gelöscht war.

Hier habe ich damals etwas dazu geschrieben:

viewtopic.php?f=74&t=222061

Und es war eine Heidenarbeit damals, diese Phantom-PNs aufzufinden und zu löschen. Außerdem unterliegen PNs dem Briefgeheimnis und man sollte alle Betroffenen um Erlaubnis fragen, bevor man sich an ihren PNs zu schaffen macht.

LG Lehrling

Re: SQL-Befehl um PNs zu löschen

Verfasst: 02.07.2013 19:26
von Miriam
Dein User könnte bspw. die PMs nach Autor sortieren lassen und dann die fraglichen PMs anhaken und hernach löschen.

Re: SQL-Befehl um PNs zu löschen

Verfasst: 03.07.2013 09:52
von fontane
Miriam hat geschrieben:Dein User könnte bspw. die PMs nach Autor sortieren lassen und dann die fraglichen PMs anhaken und hernach löschen.
Für das Eingansgproblem habe ich eine Lösung angedacht: Ich stelle fest, dass der User der einzige ist welcher über 20PNs hat. Wenn ich die maximal PNs auf 20 stelle, werden doch alle vorhandenen über 20 gelöscht - richtig? Danach wieder auf 1000 setzen und die PNs müssten weg sein.

Edit: ja es funktioniert so, gerade getestet.

Re: SQL-Befehl um PNs zu löschen

Verfasst: 03.07.2013 10:26
von Miriam
Genauso funktioniert es.
Aber: Es sind dann alle anderen PNs weg, egal von welchen Datums.