wahsaga: Leeres Array

Beitrag lesen

hi,

Habe in meiner Suchroutine eine Query und lese die Werte mit "mysql_fetch_assoc" in ein Array ein. Leider kann ich die darin enthaltenen Spalten später nicht über den Index (Key) ansprechen.

was heisst hier "später" in diesem zusammenhang?
klappt es schon in der while-schleife nicht, oder erst nachher bei dem echo nach der while-schleife?

Was habe ich falsch gemacht?

ich bin mir nicht ganz sicher, aber ich denke mit

While ($AlleDtNamen_array = mysql_fetch_assoc($res_DtNamen))

erzeugst du eben _kein_ array, sondern belegst nur die variable $AlleDtNamen_array jedesmal _neu_ mit dem wert der aktuellen zeile aus dem mysql-ergebnis.

Bzw. wie kann ich den Code ändern, daß ich später über den Index auf die rows zugreifen kann?

ich denke, dazu müsstest du

While ($AlleDtNamen_array[] = mysql_fetch_assoc($res_DtNamen))

verwenden, damit weiss php, dass es die neuen wert jeweils als neue array-elemente hinzufügen soll.
anmerkung: ich rede hier jetzt übrigens von der ersten dimension des arrays, nicht der zweiten. die zweite wäre dann die mit den tabellen-spaltennamen als index ["name_dt"].

du müsstest dann allerdings auch das ansprechen des arrays innerhalb der while-schleife anpassen, so dass du den index der ersten dimension noch dazu nimmst.

oder aber, du speicherst das ergebnis von mysql_fetch_assoc() innerhalb der while-bedingung zunächst in einer weiteren temporären variablen,
While ($AlleDtNamen_temp = mysql_fetch_assoc($res_DtNamen))
und erzeugst innerhalb der while-schleife dann jeweils eine neue zeile deines arrays,
$AlleDtNamen_array[] = $AlleDtNamen_temp;
und alle weiteren zugriffe auf $AlleDtNamen_array _innerhalb_ der while-schleife werden durch zugriffe auf $AlleDtNamen_temp ersetzt.

_nach_ der while-schleife müsstest du dann in $AlleDtNamen_array[] ein wirkliches array zur verfügung haben.

gruss,
wahsaga