Ergebnis 1 bis 13 von 13

Thema: Schwierigkeiten mit deserialize()

  1. #1
    Contao-Nutzer Avatar von TheGeek
    Registriert seit
    21.06.2009.
    Beiträge
    97

    Standard Schwierigkeiten mit deserialize()

    Hallo Typolight Community,

    Ich habe folgenden Code um eine Tabelle ab zu fragen:

    PHP-Code:
    // Sql Array
            
    $arrSqluser = array();
            
    // Array mit Abfrage füllen
            
    $objSqluser $this->Database->execute("SELECT * FROM tl_member");    
            
            while (
    $objSqluser->next())
             {
                 
    $arrSqluser[] = array
                 (
                  
    'email' => $objSqluser->email,
                  
    'firstname' => $objSqluser->firstname,
                  
    'lastname' => $objSqluser->lastname,
                  
    'mein_wert' => $objSqluser->mein_wert,
                  
    // oder doch lieber 'mein_wert' => deserialize($objSqluser->mein_wert),
                 
    );
             }
    $this->Template->teilnehmerliste_user $arrSqluser
    Das steht in meinem Template:

    PHP-Code:
    <?php foreach ($this->teilnehmerliste_user as $Teilnehmerliste): ?>
    <?php 
    echo 'Nutzer: '.$Teilnehmerliste['firstname'].$Teilnehmerliste['lastname']; ?><br>
    <?php echo 'Angemeldet: '.$Teilnehmerliste['mein_wert']; ?><br>
    <?php endforeach; ?>
    Das geht auch soweit. Nun möchte ich aber gerne den wert "mein_wert" deserialisiert an mein Template übergeben. z.z. sieht er so aus: a:2:{i:0;s:14:"BLAH1";i:1;s:17:"BLAH2";} und er soll mal so aussehen: BLAH1, BLAH2

    Wie muss ich meine abfrage abändern damit es gelingt?
    Life would be easier if I had the source code!

  2. #2
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    // Sql Array
            
    $arrSqluser = array();
            
    // Array mit Abfrage füllen
            
    $objSqluser $this->Database->execute("SELECT * FROM tl_member");    
            
            while (
    $objSqluser->next())
             {
                 
    $arrSqluser[] = array
                 (
                  
    'email' => $objSqluser->email,
                  
    'firstname' => $objSqluser->firstname,
                  
    'lastname' => $objSqluser->lastname,
                  
    'mein_wert' => implode(', 'deserialize($objSqluser->mein_wert)),
                 );
             }
    $this->Template->teilnehmerliste_user $arrSqluser
    EDITH meint: Ich brauch nen K-Fee, nun schreib ich schon statt implode das deprecated join hin....
    Geändert von xtra (10.11.2009 um 12:02 Uhr)
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  3. #3
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.636
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  4. #4
    Contao-Nutzer Avatar von TheGeek
    Registriert seit
    21.06.2009.
    Beiträge
    97

    Standard

    Danke für die schnelle antwort...

    PHP-Code:
    Warningimplode() [function.implode]: Invalid arguments passed in ... 
    Laut PHP Referenz scheint implode der richtige Ansatz zu sein und es schein auch zu gehen... aber leider kommt immer diese meldung

    Hilfe!? Wie bekomme ich die Fehlermeldung weg?
    Geändert von TheGeek (10.11.2009 um 21:32 Uhr)
    Life would be easier if I had the source code!

  5. #5
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    lass dir mal bitte testweise den Wert raw ausgeben.
    PHP-Code:
    var_dump(deserialize($objSqluser->mein_wert)); 
    was kommt da bei raus?
    ist das Feld immer befuellt?
    Ganz sicher nie(!) NULL?
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  6. #6
    Contao-Nutzer Avatar von TheGeek
    Registriert seit
    21.06.2009.
    Beiträge
    97

    Standard

    Ach so das Array muss immer einen Wert haben. Na dann mach ich das im Template jetzt einfach so:

    PHP-Code:
    <?php 
    if (!empty($Teilnehmerliste['mein_wert'])) echo implode(', '$Teilnehmerliste['mein_wert']);
    ?>
    Oder wie würdest du das machen?
    Life would be easier if I had the source code!

  7. #7
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.709
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    LOL, nirgendwo bei PHP dokumentiert, aber deserialize() scheint tatsächlich ein Alias für unserialize() zu sein. http://de.php.net/manual/en/function.unserialize.php
    Im Catalog filter_widgets.html5 steht auch deserialize() drin, eigentlich falsch.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  8. #8
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Was soll daran falsch sein? deserialize ist eine Contao-Funktion, kein Fehler.

  9. #9
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.709
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Man, da muss man auch erstmal drauf kommen und ich such und such und kann deserialize() bei PHP nicht finden Ich danke dir.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  10. #10
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Hättest auch einfach die functions.php oder andere Contao Klassen durchsuchen können Dann hättest du gleich gesehen was Sache ist.

  11. #11
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.709
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, nachdem du mich drauf hingewiesen hast, hatte ich sie sofort in functions.php gefunden, aber ich bin einfach nicht drauf gekommen, dass das ne Contao-Funktion sein könnte
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  12. #12
    Alter Contao-Hase
    Registriert seit
    02.10.2010.
    Ort
    58636 Iserlohn
    Beiträge
    1.084

    Standard unserialize mit SQL ?

    Gibt es dafür eigentlich auch in SQL eine Möglichkeit?
    Ich habe nichts gefunden.

    Vielleicht erklärt das, was ich meine.
    Code:
    ... WHERE tl_news_archive.id IN unserialize(tl_module.news_archives) ...
    Hier möchte ich z.B. auf alle News eines News-Moduls zugreifen (SQL ist noch länger).

    Wahrscheinlich muss ich wohl das ganze in zwei DB-Abfragen splitten, oder?

    Danke
    Thoni
    Meine Extensions: contentmodify, dca_editor

  13. #13
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.709
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Nein, das gibt es nicht mit SQL. Ein Array wurde mit PHP in einen String 'serialisiert' und muss mit PHP wieder 'deserialisiert' werden.

    Du kannst ja im Modul einstellen, aus welchem Archiv du die News haben möchtest. Oder mit einer PHP DB-Abfrage und die Ergebnisse nach dem 'deserialisieren' filtern.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Schwierigkeiten beim Anzeigen der Home Seite 1und1
    Von Yogi im Forum Erfahrungen mit Webhostern
    Antworten: 5
    Letzter Beitrag: 31.03.2010, 18:41
  2. DCA / Filetree / Checkbox / deserialize
    Von nicknolte im Forum Entwickler-Fragen
    Antworten: 9
    Letzter Beitrag: 24.02.2010, 09:17

Berechtigungen

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