Posts aller Topics eines bestimmten Forums löschen

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
theonlyrobi
Mitglied
Beiträge: 80
Registriert: 09.08.2003 14:33
Wohnort: Jena
Kontaktdaten:

Posts aller Topics eines bestimmten Forums löschen

Beitrag von theonlyrobi »

Hallo Leute,

ich suche nach einer einfachen Möglichkeit, alle Posts aller Topics eines bestimmten Forums zu löschen. Der erste Beitrag, also das Topic soll aber stehen bleiben. Wie muss ich denn da vorgehen? Jedes Forum hat ja ne bestimmte ID, auf die sich dann die Topics beziehen, sowie auch die Posts der Topics. Kann man sich da irgendwie nen SQL-Befehl basteln, der das mit einem Mal macht? Gibt es evtl. Probleme mit der referentiellen Integrität, wenn ich die Beiträge einfach über PhpMyAdmin lösche? Danke für eure Hilfe.

Robert
Benutzeravatar
theonlyrobi
Mitglied
Beiträge: 80
Registriert: 09.08.2003 14:33
Wohnort: Jena
Kontaktdaten:

Beitrag von theonlyrobi »

Also ich bin inzwischen soweit, dass ich es schaffe, alle Posts der Tabellen "phpbb_posts" bzw "phpbb_posts_text" anzuzeigen mit folgendem Code:

Code: Alles auswählen

SELECT phpbb_posts_text.post_id
FROM phpbb_posts, phpbb_posts_text
WHERE phpbb_posts.forum_id =34
AND phpbb_posts.post_id = phpbb_posts_text.post_id
Nun habe ich noch das Problem, dass ich nicht weiss wie ich den ersten Post jedes Topics stehen lassen kann. Hat da jemand eine Idee?
Wäre für Eure Hilfe sehr dankbar, da ich dringend eine Lösung finden muss
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

In der "topics" Tabelle gibt´s die Felder 'topic_last_post_id' und 'topic_first_post_id' (s. DB-Beschreibung).
Benutzeravatar
theonlyrobi
Mitglied
Beiträge: 80
Registriert: 09.08.2003 14:33
Wohnort: Jena
Kontaktdaten:

Beitrag von theonlyrobi »

Hallo,

ich habe jetzt folgenden SQL-Befehl:

Code: Alles auswählen

SELECT phpbb_posts.post_id
FROM phpbb_posts, phpbb_posts_text, phpbb_topics
WHERE phpbb_posts_text.post_id = phpbb_posts.post_id
AND phpbb_posts.forum_id =34
AND phpbb_topics.topic_first_post_id <> phpbb_posts.post_id
AND phpbb_topics.topic_id = phpbb_posts.topic_id
Der soll folgendes machen:
1. Alle Beiträge aller Topics im Forum mit der ID 34 löschen
2. Die ersten Beiträge der Topics sollen stehen bleiben

Hier meine Fragen:
a) Kann ich das einfach so ausführen?
b) Gibt es denn dann kein Problem mit der referenziellen Integrität?
c) Muss ich erst die Posts aus der Tabelle "phpbb_posts" löschen oder aus der Tabelle "phpbb_posts_text"?
d) Einige Beiträge sind mit Attachments versehen. Reicht es wenn ich ide dann manuell lösche?
e) Welche anderen Tabellen enthalten Daten zu den Posts, die dann einen SQL-Fehler ergeben könnten?

Robert
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“