[3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Fragen rund um die Installation, Administration und Benutzung von phpBB.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
cpg
Mitglied
Beiträge: 510
Registriert: 24.11.2007 12:43
Kontaktdaten:

[3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von cpg »

Moin,

ich habe einen alten Beitrag gefunden. Dort wird vorgeschlagen:

Code: Alles auswählen

UPDATE phpbb_posts_text
SET post_text = REPLACE(post_text, 'old text', 'new text')
WHERE post_text LIKE '%old text%'
Ist das noch gültig - mit den notwendigen Änderungen?

Ich danke für Hinweise!
Gruß
cpg
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2175
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von LukeWCS »

Hallo

Da MySQL weit ausserhalb meiner Komfortzone liegt :wink:, habe ich eben in meinem SQL Schnippsel-Archiv gestöbert, die ich schon bei mir im Forum erfolgreich angewendet habe. Das ist aber schon sehr viele Jahre her.

Eine Tabelle posts_text gab es laut meinem phpBB Archiv zuletzt bei phpBB 2.0. Da hast du also etwas aus der Steinzeit von phpBB ausgebuddelt. ^^

Ansonsten würde der Code aber noch so passen, wenn du phpbb_posts_text durch phpbb_posts ersetzt. Und wie immer bei solchen Aktionen: vorher DB sichern.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
cpg
Mitglied
Beiträge: 510
Registriert: 24.11.2007 12:43
Kontaktdaten:

Re: [3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von cpg »

Dankeschön!

Ich werde es morgen in Ruhe machen.
Ja, das Thema ist alt; aber ich wollte schon mal selbst suchen und dann die notwendigen Änderungen vornehmen.

Gruß und gute Nacht
cpg
Benutzeravatar
Dref
Mitglied
Beiträge: 107
Registriert: 13.01.2022 15:36

Re: [3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von Dref »

Versuchen Sie nach einer Datenbanksicherung Folgendes:

Code: Alles auswählen

UPDATE phpbb_posts SET post_text = 'new text' where post_text LIKE '%old text%'
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17403
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: [3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von Dr.Death »

Achtung, der o.g. SQL Befehl von Dref ersetzt den kompletten Beitragstext

Bitte nicht verwenden!


Der folgende SQL Befehl macht genau das, was Du möchtest: es ersetzt nur den Teil eines Beitrags, der mit dem zu ersetzenden Text übereinstimmt.

Vorher ein Datenbank Backup erstellen!

Code: Alles auswählen

UPDATE phpbb_posts
SET post_text = REPLACE(post_text, 'old text', 'new text')
WHERE post_text LIKE '%old text%'
cpg
Mitglied
Beiträge: 510
Registriert: 24.11.2007 12:43
Kontaktdaten:

Re: [3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von cpg »

Guten Morgen,

ich danke euch!

Da es sich um ein umfangreiches Forum handelt, werde ich es möglichst schrittweise vornehmen. Kann ich forum_id und post_id in die Zeilen einflechten?

Da vielleicht noch andere Userinnen und User betroffen sind, möchte ich näher erklären, um was es geht.
In meinem Forum können Bilder über andere Domains eingestellt werden. Ich glaube, das ist auch hier und in anderen Foren möglich.
Bei einem dieser Bilderdienste erhalte ich Warnmeldungen an meinem heimischen Rechner und es wird auf eine Blacklist verwiesen.
Als erste Maßnahme habe ich über Wortzensur dafür gesorgt, dass die Adresse nicht mehr erlaubt/angenommen wird.
Allerdings will ich "klare Kante" machen und sämtliche Links auf die bemängelte Adresse rausnehmen.

Gruß
cpg
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17403
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: [3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von Dr.Death »

Klar, da forum_id und post_id in der Tabelle phpbb_posts enthalten ist.
Einfach mit "and" verknüpfen:

Code: Alles auswählen

UPDATE phpbb_posts
SET post_text = REPLACE(post_text, 'old text', 'new text')
  WHERE post_text LIKE '%old text%'
    AND forum_id = 123
    AND post_id = 456
Benutzeravatar
chris1278
Mitglied
Beiträge: 3554
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von chris1278 »

Aber mal eine ganz dumme Frage. Wenn du ja die Foren aufrufen musst um die id´s aus dem link zu entnehmen warum musst du dann das noch für jedes Forum einzeln in der Datenbank mit sql löschen. Dann könntest du das auch direkt per Moderator-Berechtigung im Forum direkt löschen.
cpg
Mitglied
Beiträge: 510
Registriert: 24.11.2007 12:43
Kontaktdaten:

Re: [3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von cpg »

Moin,

erst habe ich manuell gelöscht, aber es sind schon recht viele Eintragungen, die allerdings überwiegend zwei Foren betreffen.
Ich halte es für besser, wenn ich die Original-Eintragungen der bemängelten Domain rausnehme.
Oder ist es ein Denkfehler?
Die "Wort-Zensur" hat nicht gereicht.

Gruß
cpg
Benutzeravatar
chris1278
Mitglied
Beiträge: 3554
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Einen Begriff für das gesamte Forum über Datenbank rausnehmen

Beitrag von chris1278 »

Naja ich meine um die Foren IDs und Topic IDs zu finden musst du ja eh die Foren aufrufen. In meinen Augen ist das doppelte Arbeit.
Antworten

Zurück zu „Support-Forum“