Moin!
Also habe den Rat verfolgt und habe es am Ende des Skriptes ausführen lassen und es wird nur der letzte Wert gedruckt.
Also brauchst du dich nicht zu wundern, dass das Folgescript nur den letzten Wert ausgibt.
Nur solange ich den Befehl in der while-schleife:
while ($array_check = mysql_fetch_array($query_special,MYSQL_ASSOC))
{ echo "<tr>"."<td style='font-size:16px; font-family:Verdana'>".$array_check['check_title']."</td>";
$arrDay=$array_check['check_title'];$_SESSION['test']=$arrDay;
echo "<pre>";
print_r($_SESSION["test"]);
echo "</pre>";
}
lasse, werden alle Werte ausgegeben.
Ausgegeben werden sie - aber das ist ja nicht relevant. Die Ausgabe merkt sich alles, was mit echo oder z.B. print_r produziert wurde. Das spiegelt aber nicht den Zustand wider, der sich in den Variablen abspielt.
Du überschreibst in jedem Schleifendurchgang den Inhalt der Variablen $_SESSION['test'] mit dem neuen Inhalt der Variable $arrDay, und die Variable $arrDay wird vorher jedesmal vom neuen Inhalt der Variablen $array_check['check_title'] überschrieben, und zuvor wird die Variable $array_check() jedesmal mit dem Funktionsergebnis von mysql_fetch_array() überschrieben.
Sprich: In $_SESSION ändert sich, während die Schleife läuft, andauernd der Inhalt, und am Ende bleibt übrig, was zuletzt reingeschrieben wurde.
»» Hattest du vor, das Ergebnis der gesamten DB-Abfrage zu sichern? Dann nutze ein Array dafür - in diesem Fall also ein Array im Array.
Was genau meinst du damit? Soll ich den $array_check nochmal in ein Array packen oder sowas wie $_SESSION["test"][]?
Genau sowas wie... Du kannst dir das sinnlose Zwischenkopieren in die Variable $arrDay übrigens sparen, das kostet nur sinnlosen Speicher und Rechenzeit, bringt aber nichts.
- Sven Rautenberg