Session die Arraywerte enthält wieder als Array lesen können

Pinky

Erfahrenes Mitglied
Liebe Leute

ich speichere eine Array als SESSION. In der Array ist eine gewisse Folge von IDs aus der DB enthalten, die sich nicht mehr ändern sollen, sobald der Button "Senden" geklickt worden ist (daher die Idee mit der Session, ein Array geht ja über den Pagerefresh verloren).

Nachdem einer den Button "Senden" gedrückt hat, wird nur noch die Session ausgegeben. Doch ich möchte nur einen bestimmten Wert. Also zum Beispiel möchte ich nur den Wert des Arrays aus der Session mit der Nummer 3.

Schreibe ich im PHP Code print_r($_SESSION['folge']) zeigt er mir alle Inhalte der im Abschnitt 1 gespeicherten Array an. Wenn ich nun aber auf den genannten dritten Wert der Array zugreiffen will, passiert einfach nix.

So sieht der Code aus:

PHP:
if (!isset($_POST[senden]))
{
$words = array();
$sql = mysql_query("SELECT * FROM `".$tabelle."_words` ORDER BY rand() ASC");
while($tmp = mysql_fetch_array($sql))
{ array_push($words, $tmp[id]); }
$_SESSION['folge'] = print_r($words, true);
}
	
$ids = $_SESSION['folge'];
print_r($ids) # DAS HIER FUNKTIONIERT BESTENS, ZEIGT MIR ALLES AN
echo $ids[3]; # DAS HIER ZEIGT MIR NICHTS AN

Kann mir jemand helfen, wie ich die Array-Werte aus der Session wieder über einen normalen Arraybefehl (also hier $ids[3]) ansteuern kann?

Herzlichen Dank
Euer Pinky
 
Lass mal das print_r weg.
PHP:
if (!isset($_POST[senden])) 
{ 
$words = array(); 
$sql = mysql_query("SELECT * FROM `".$tabelle."_words` ORDER BY rand() ASC"); 
while($tmp = mysql_fetch_array($sql)) 
{ array_push($words, $tmp[id]); } 
$_SESSION['folge'] = $words; 
} 
     
$ids = $_SESSION['folge']; 
print_r($ids) # DAS HIER FUNKTIONIERT BESTENS, ZEIGT MIR ALLES AN 
echo $ids[3]; # DAS HIER ZEIGT MIR NICHTS AN
 
Hi,

zum Verständnis: print_r() wird normalerweise zu Debug-Zwecken eingesetzt, da es "Variablen-Informationen in lesbarer Form" ausgibt. Du schreibst kein Array in $_SESSION['folge'], sondern einen String mit der lesbaren Form des Arrays $words.

LG
 
Oh, toll. Schon gelöst. Das print_r störte.

Die gespeicherte Array kann dann durch $_SESSION['folge'][3] aufgerufen werden.

Supi, danke!
Euer Pinky
 
Zurück