[TYPO3-german] Werte für Flexform-Feld in die Datenbank schreiben via php

Susanne sw1977 at online.de
Sat Oct 5 15:47:32 CEST 2013


Hallo Joey,

mit dem REPLACE ist vielleicht ne Idee, obwohl der String ja nicht 
eindeutig ist -- ist ja jedesmal anders.
Meinst du, es wäre eine Möglichkeit, den zu ersetzenden Wert im XML mit 
CDATA zu umschließen, dann ein REGEX schreiben, was den Wert innerhalb 
CDATA findet und dann replacen?

Also im Prinzip so:

  * Gesamtes XML auslesen und als String in eine Variable schreiben
  * mit preg_replace Wert finden und ersetzen
  * Den geänderten String wieder per SQL Update in die Datenbank schreiben.

Danke auf jeden Fall schonmal für den Denkanstoß!

Susanne



Am 05.10.2013 15:05, schrieb JoH asenau:
>> ich habe momentan ein kleines Problem und hoffe, jemand kann mir helfen.
>> Ich habe in der Datenbank ein Flexform-Feld, dass ich via php mit
>> user-generierten Daten füllen muss.
>> Nun meine Frage: Gibt es eine Möglichkeit, nur den gerade geänderten
>> Wert im Flexform-Feld zu ersetzen? Oder muss ich jedesmal das komplette
>> Feld auslesen und die gesamte xml-Struktur neu schreiben?
>
> Theoretisch gesehen könntest Du auch per SQL UPDATE query mit Hilfe 
> von REPLACE einen bestimmten Teil im XML ersetzen, aber der müsste 
> dann eindeutig sein. Zudem gibt es dafür keinerlei API-Methoden, das 
> wäre also mehr oder weniger ein Hack.
>
> Von daher würde ich mal sagen: Du hast einen der Gründe entdeckt, 
> warum Flexforms bzw XML im Datenbankfeld wenig sinnvoll sind, wenn es 
> um saubere Datenhaltung geht ;-)
>
> Trotzdem frohes Schaffen :-)
>
> Joey
>



More information about the TYPO3-german mailing list