Seite 1 von 2

Links in bestehenden Posts per massenänderung ändern ?

Verfasst: 07.08.2007 19:04
von trompetenforum
Hi,

ich habe folgendes Problem: Das 3.X Forum liegt in einem anderen verzeichniss als das 2.X Forum...Viele Links ("Siehe Beitrag...") verweisen jetzt auf das alte Forum :-/

Kann ich irgendwie in der DB mit "Suche und ersetze" o.ä. alle entsprechenden Links in Beiträgen aktualisieren ? Da die entsprechenden Felddatentypen auf "Blop" gestellt sind habe ich keine Ahnung wie ich das am einfachsten machen kann...

Irgendwelche Ideen ?

Danke, Dennis

Verfasst: 07.08.2007 19:18
von bantu
Lösung 1: Ersetze das alte Forum mit dem neuen, dann passen die Links wieder.

Lösung 2: SQL: Änderung von Texten in allen Beiträgen

Verfasst: 07.08.2007 19:30
von nickvergessen
Lösung3: mit der Wortzensur die Textstellen beliebig ersetzen
z.B.: www.alte_domain.de/forum/ durch www.neue_domain.de/phpbb3/ ersetzen lassen

ist aber wohl die unsauberste Lösung

Verfasst: 07.08.2007 19:46
von trompetenforum
Die Lösung 3 scheint zu funktionieren ;-)

Lösung 2 probiere ich nicht aus da wie gesagt die Feldtypen bei 3.X auf mediumblob (binary) stehen und nicht auf varchar (text) wie bei 2.X...
Die SQL Anweisung funktioniert bei 2.X aber bei 3.X wird das wohl so nichts. :-(

Verfasst: 07.08.2007 19:56
von nickvergessen
trompetenforum hat geschrieben:Die SQL Anweisung funktioniert bei 2.X aber bei 3.X wird das wohl so nichts. :-(
Mit ein wenig Anpassung hätte es schon geklappt

Verfasst: 07.08.2007 20:20
von trompetenforum
nickvergessen hat geschrieben:
trompetenforum hat geschrieben:Die SQL Anweisung funktioniert bei 2.X aber bei 3.X wird das wohl so nichts. :-(
Mit ein wenig Anpassung hätte es schon geklappt
??? Wie soll denn ein Replace bei Binär daten funktionieren ?
Mit Datentyp Blob hatte ich bisher noch nichts zu tun, über PHPMyAdmin sieht man keine Texte.Oder konvertiert der SQL-Server die old_text / new_text automatisch von text in blob ?

Verfasst: 07.08.2007 23:40
von nickvergessen
hmpf, hatte das mit dem blob überlesen...
Naja ein Problem, dass bei allen anderen auftretten könnte ist, dass es die Tabelle phpbb_posts_texts nicht mehr gibt, der text befindet sich jetzt in der phpbb_posts

Verfasst: 08.08.2007 06:38
von Parse Error
trompetenforum hat geschrieben:??? Wie soll denn ein Replace bei Binär daten funktionieren ?
Mit Datentyp Blob hatte ich bisher noch nichts zu tun, über PHPMyAdmin sieht man keine Texte.Oder konvertiert der SQL-Server die old_text / new_text automatisch von text in blob ?
Man sieht die Texte in phpMyAdmin schon, wenn man in der jeweiligen Zeile auf "Editieren" klickt.

Ist es absolut sicher, dass die Lösung 2 nicht mehr funktioniert (vorausgesetzt, man passt den Tabellennamen an)?

P.E.

Verfasst: 08.08.2007 09:55
von trompetenforum
Parse Error hat geschrieben:
trompetenforum hat geschrieben:??? Wie soll denn ein Replace bei Binär daten funktionieren ?
Mit Datentyp Blob hatte ich bisher noch nichts zu tun, über PHPMyAdmin sieht man keine Texte.Oder konvertiert der SQL-Server die old_text / new_text automatisch von text in blob ?
Man sieht die Texte in phpMyAdmin schon, wenn man in der jeweiligen Zeile auf "Editieren" klickt.

Nö, da steht "Binary do not edit" und ein "Durchsuchen" Feld...

Verfasst: 08.08.2007 10:09
von Parse Error
Hi,

ich habe in meinem Testboard noch RC1. Und wenn ich in phpMyAdmin in der Tabelle phpbb_posts auf den Bleistift (zum Editieren) klicke, bekomme ich auch den Text des Beitrags zu sehen.

Und Methode 2 funktioniert (zumindest bei RC1) auch tadellos - habe es nun selbst ausprobiert am folgenden Beispiel:

Code: Alles auswählen

UPDATE phpbb_posts
SET post_text = REPLACE(post_text, 'Forensoftware', 'FORENSOFTWARE')
WHERE post_text LIKE '%Forensoftware%'
P.E.