serialisierte Felder 'aufdröseln'
keine wirkliche Entwicklerfrage, aber ich bekomm es nicht hin:
Ich müsste die in BLOB-Feldern gespeicherten Daten als einzelne key->value-Paare haben, in jedem Fall in einer Auflistung, ggf. auch als Export für Excel (wäre eine andere Frage).
Speziell gehts um den chshop und die Bestelldaten, ich bräuchte da für die einzelnen Datensätze neben den 'normalen' Feldern eben auch Name, Straße etc. (sind in einem BLOB zusammengefasst) als getrennte Werte.
Aber da die BLOBs ja auch anderswo verwendet werden, ist das ja eher eine generell Frage.
Wäre dankbar für Tipps.
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
lindesbs
... ich vermute, du such serialize und deserialize
Zitat:
Zitat von
tlnewbie
... fällt vielleicht irgendjemandem irgendein codeschnipsel (link o.ä.) ein, der mir helfen könnte? Danke.
Wie wäre es damit:
PHP-Code:
$objData = $this->Database->execute('SELECT * FROM tl_page');
# hier sind die gruppen noch serialisiert gespeichert
$strGroup = $objData->groups;
# ab jetzt kannst du auf das Array zugreifen
$arrGroup = deserialize($strGroup);
# Alternativ geht das natürlich auch in einer Zeile
$arrGroup = deserialize($objData->groups);
Ein Blob ist zwar ein binäres Datenfeld, wird von Contao aber eigentlich nur als Textspeicher verwendet, denn nach definition generiert serialize(..) einen String.
Wenn du mit einem SQL Browser sehen möchtest, was in einem Blob drin steht, musst du das Feld vorher konvertieren, das geht z.B. so:
Code:
SELECT id,title,CONVERT(groups USING utf8) AS groups FROM `tl_page` WHERE LENGTH(groups)>0
Dieses Query zeigt dir alle Seiten, die nur bestimmten Gruppen angezeigt werden. (Vorausgesetzt, es sind solche Seiten vorhanden ;))
Das Ergebnis sieht dann so aus:
Anhang 2680
MfG Tristan