Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Texte über Datenbank ändern
Forum Sefrengo.org > Allgemeine Foren > Anwenderforum
SefrenTo
Hallo zusammen,
ich muss in einem Projekt einen Text ändern, der mehrfach auf jeder Seite auftaucht.
Es handelt sich dabei um eine URL die im ContenFlex als "Quelltext" eingesetzt wurde.

Außerdem beinhaltet die Installation zwei Projekte, von denen ich nur das zweite ändern möchte (das andere sollte nach Möglichkeit unangetastet bleiben).

Da ich mich echt schlecht mit MySQL auskenne, wollte ich mal fragen, ob hier vielleicht jemand einen passenden SQL-Anfrage posten kann, die ich in PHPMyAdmin ausführen kann..
Ich würde diese dann später in die "HowTo's" posten, da dieses Problem sicherlich häufiger auftaucht.

Vielen Dank und beste Grüße!
Taturo
Hallo SefrenTo,

ich bin auch kein MySQL Experte, daher bin ich mit automatischem suchen & ersetzen immer vorsichtig. Ich suche meist nur und ersetze von Hand. Das geht relativ fix, wenn der zu ersetzende Begriff nicht so häufig vorkommt.

Der Inhalt steht in der Tabelle cms_content im Feld value. Der Suchstring sieht so aus:
QUELLTEXT
SELECT * FROM `cms_content`
WHERE `value` LIKE '%dein suchbegriff%'
LIMIT 0 , 30


Oder du gehst über die phpAdmin Suche, wählst bei value den Operator LIKE %..% aus und gibst bei Wert den Suchbegriff ein.

Als Ergebnis bekommst du alle Zeilen ausgeworfen, in denen der Suchbegriff im Feld values vorkommt. Hier kannst du diesen dann wie üblich ersetzen (Stiftsymbol).

Suchen und Ersetzen geht mit diesem String
QUELLTEXT
UPDATE cms_content SET value = replace(value, 'dein suchbegriff', 'dein neuer begriff')


Vorher auf jeden Fall eine Datenbanksicherung machen, ist klar.

Gruss, Andreas
SefrenTo
Super! Danke für die Antwort!
Ich werde das gleich mal ausprobieren.

Eine Frage bleibt aber noch:
Kann ich irgendwie gewährleisten, dass NUR die Daten des 2. Projekts in der Datenbak geändert werden und die von Projekt01 unangetastet bleiben?

Vielen Dank und beste Grüße!
Taturo
Nein, imho ist das so gut wie unmöglich. Sefrengo schreibt alle Inhalte gnadenlos in die cms_content, egal von welchem Projekt. Eine Chance hast du höchstens, wenn deine Container in jedem Projekt eine andere Nummer haben oder die User, die die Seiten befüllt haben, sind unterschiedlich. Dann kannst du eine Abfrage machen wie
QUELLTEXT
SELECT * FROM `cms_content`
WHERE `value` LIKE '%dein suchbegriff%' AND 'container' =Containernummer
LIMIT 0 , 30

SefrenTo
Zum Glück kam das Wort nur in dem einen Projekt vor!

Dein Code hat wunderbar funktioniert:
QUELLTEXT
UPDATE cms_content SET value = replace(value, 'dein suchbegriff', 'dein neuer begriff')


Vielen Dank nochmals und Grüße!
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.