Ergebnis 1 bis 9 von 9

Thema: serialisierte Felder 'aufdröseln'

  1. #1
    Contao-Fan
    Registriert seit
    27.11.2009.
    Beiträge
    326

    Standard 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.
    Geändert von tlnewbie (14.09.2010 um 21:50 Uhr)

  2. #2
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Ich versteh dein Problem nicht wirklich, aber ich vermute, du such serialize und deserialize
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  3. #3
    Contao-Fan
    Registriert seit
    27.11.2009.
    Beiträge
    326

    Standard

    Zitat Zitat von lindesbs Beitrag anzeigen
    Ich versteh dein Problem nicht wirklich, aber ich vermute, du such serialize und deserialize
    Hallo und danke für Deine Antwort - ich weiß, dass meine Frage im Entwicklerforum eher falsch ist. Es hakt bei mir eher an mangelnden Prog-Kenntnissen, aber vielleicht bringt mich Dein Hinweis ja schon weiter.

    EDIT: leider nicht wirklich - fällt vielleicht irgendjemandem irgendein codeschnipsel (link o.ä.) ein, der mir helfen könnte? Danke.
    Geändert von tlnewbie (14.09.2010 um 23:15 Uhr)

  4. #4
    Contao-Fan Avatar von Wichteldesign
    Registriert seit
    23.06.2009.
    Ort
    Nürtingen
    Beiträge
    353

    Standard

    Naja, wenn du die Daten aus den serialisierten Feldern brauchst, musst du sie logischerweise auch wieder deserialisieren. Meistens kommen da dann Arrays bei raus. Die kannst du dann ja nach belieben in einer Auflistung ausgeben oder auch für Excel aufbereiten.

    Beispiel: Du brauchst alle Addressen aus deinen bestellungen im CHShop.

    - Durchlaufe alle Bestellungen
    - Hol dir das Feld mit der Addresse -> deserialisieren
    - Addresse irgendwo in ein Array oder sonst was hinschreiben

    - Das neue Array weiterverarbeiten ... Damit hast du alles was du brauchst.

    Gruß Felix
    Besten Gruß, Felix Peters
    Wichteldesign // Github // @wichteldesign // @el_wichtel

  5. #5
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von lindesbs Beitrag anzeigen
    ... ich vermute, du such serialize und deserialize
    Zitat Zitat von tlnewbie Beitrag anzeigen
    ... 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:
    result.png

    MfG Tristan

  6. #6
    Contao-Fan
    Registriert seit
    27.11.2009.
    Beiträge
    326

    Standard

    Vielen Dank schonmal für Eure Unterstützung !! (insbes. tril). Ich sage dann Bescheid, ob es geklappt hat!

  7. #7
    Contao-Nutzer Avatar von somoza
    Registriert seit
    28.08.2009.
    Ort
    St. Pölten
    Beiträge
    103

    Standard

    Zitat Zitat von tril Beitrag anzeigen
    Wenn du mit einem SQL Browser sehen möchtest, was in einem Blob drin steht, musst du das Feld vorher konvertieren
    Hallo,

    Wenn du mit PHPMyAdmin drauf zugreifst gehts noch einfacher. Du musst einfach nur in der Cofig-Datei config.inc.php folgenden Werte setzten/ändern um die Einträge zu sehen:

    PHP-Code:
    $cfg['ShowBlob'] = TRUE
    Wenn du sie auch bearbeiten willst solltest du gleich auch diesen Wert setzen:

    PHP-Code:
    $cfg['ProtectBinary'] = FALSE
    MfG
    somoza

  8. #8
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von somoza Beitrag anzeigen
    Hallo,

    Wenn du mit PHPMyAdmin drauf zugreifst gehts noch einfacher. Du musst einfach nur in der Cofig-Datei config.inc.php folgenden Werte setzten/ändern um die Einträge zu sehen:

    PHP-Code:
    $cfg['ShowBlob'] = TRUE
    Wenn du sie auch bearbeiten willst solltest du gleich auch diesen Wert setzen:

    PHP-Code:
    $cfg['ProtectBinary'] = FALSE
    MfG
    somoza
    somoza hat damit nicht ganz unrecht, wenn nur Contao seine Daten in der Datenbank speichert, ist das OK. Aber Vorsicht, wenn noch andere Anwendungen, echte Binärdaten ablegen, da stürzt schon mal der ein oder andere Browser bei diesen Einstellungen ab oder man schrottet sich die Daten in der DB.
    Also Vorsicht mit diesen Einstellungen, sie sind nicht ohne Grund, so vorkonfiguriert, wie sie sind
    Ansonsten wie gesagt, wenn nur Contao seine Daten in der DB hat, dürfte es keine Probleme geben.
    MfG Tristan

  9. #9
    Contao-Fan
    Registriert seit
    27.11.2009.
    Beiträge
    326

    Standard

    Toll, nachdem ich da ewig drangesessen hab und erheblich an meinem Verstand gezweifelt hab, hab ich gemerkt, dass die Daten, die mich interessieren, im Fall von Gastbestellungen gar nicht als einzelne Felder vorhanden sind, sondern zusammen als html in einem Feld 'invoice_adress' zusammengefasst werden (mehrere divs mit entspr. Inhalt)!!! -
    Kunden bzw. 'member'-Registrierungen will ich aber während eines Kaufvorgangs nicht, weil da erst eine Bestätigungsmail verschickt wird, worin die 'Kunden' einen link bestätigen müssen (für ein CMS sinnvoll, aber nicht für einen Shop!) - oder geht die Registrierung auch ohne Betätigungsmail? Habe ich nicht gefunden...
    Die Frage hat hier wieder nichts verloren, sorry...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. von/bis Felder im BE-Modul
    Von redbecks im Forum Entwickler-Fragen
    Antworten: 4
    Letzter Beitrag: 29.06.2009, 11:56

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •