Seite 1 von 2

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

Verfasst: 04.08.2023 21:38
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

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

Verfasst: 04.08.2023 22:16
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.

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

Verfasst: 04.08.2023 22:28
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

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

Verfasst: 05.08.2023 07:13
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%'

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

Verfasst: 05.08.2023 08:47
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%'

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

Verfasst: 05.08.2023 09:21
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

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

Verfasst: 05.08.2023 09:59
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

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

Verfasst: 05.08.2023 11:09
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.

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

Verfasst: 05.08.2023 11:24
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

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

Verfasst: 05.08.2023 11:42
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.