Zum Inhalt springen

Array in Session übergeben??

Erstellt am 25. August 2007 · 5 Antworten · letzte Antwort am 26. August 2007

Tags: Frage

VioletSupporter ·

Hallo!

Ich möchte ein resultset welches ich bei einer datenbankabfrage zurückbekomme, in eine session speichern:

$res2=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy);

$GLOBALS['TSFE']->fe_user->setKey('ses','order',$res2);
$GLOBALS["TSFE"]->storeSessionData();

Aufrufen tu ich die Session dann wiefolgt:
$res2=$GLOBALS['TSFE']->fe_user->getKey('ses','order');

Wenn ich testweise in $res2 einen String oder einfach eine Zahl speichere überfolgt das übergeben ohne Probleme. Also kanns nur am Array liegen.

Wie übergebe ich bitte ein Array in ner Session?

Ich hoffe es kann mir wer weiterhelfen.

Danke im Voraus!

VioletSupporter ·

Bekomme das mit serialize und unserialize irgendwie nicht hin. Mein Code:

$res2=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy);

$GLOBALS['TSFE']->fe_user->setKey('ses','order',serialize($res2));
$GLOBALS["TSFE"]->storeSessionData();

$res2=unserialize($GLOBALS['TSFE']->fe_user->getKey('ses','order'));

Debug of res2 liefert: |0| obwohl 7 resultate gefunden in der query gefunden werden.
Was mache ich bitte falsch???

VioletSupporter ·

laut php.net:

serialize() kann mit allen Typen umgehen, ausgenommen mit dem resource-Typ.

echo $res2 ergibt Resource Id. xxx

Gibts denn keine andere Möglichkeit ein Array per Session zu übergeben??

steffenk ·

was Du machst ist falsch, $res2 ist kein Array sondern die Ressource.
Natürlich kannst Du in der Session auch Arrays speichern.

$res2=$GLOBALS['TYPO3_DB']->exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy,$orderBy);
$row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res2);
$GLOBALS['TSFE']->fe_user->setKey('ses','order',$row));
$GLOBALS["TSFE"]->storeSessionData();