Henryk Plötz: Select in Array speichern und spezielle Reihe ausgeben

Beitrag lesen

Moin

Da ich gelesen habe, dass es sich bei dieser Variable $result nicht um ein Array handelt, möchte ich daraus gern ein Array generieren.

Genau. In $result liegt ein "Ressource Identifier". Das ist einfach eine intern verwendete Datenstruktur mit der sich PHP merkt was du gerne ansprechen möchtest. In diesem Fall also das Ergebnis der Datenbank abfrage.

while ($res = mysql_fetch_array($result)){
$xyz=$res["xyz"];}

Nun möchte ich z.B. auf die Datenreihe 12 zugreifen.
$www= $xyz[12];
echo "$www";

Dein Code ist etwas verwirrt. Zunächst mal erzeugt mysql_fetch_array ein Array mit der aktuell ausgelesenen Datenzeile. Das scheinst du erkannt zu haben und benutzt dementsprechend eine Schleife die Zeile für Zeile ausliest. Allerdings ist deine Schleife kaputt: Sie überschreibt den Inhalt der Variablen $xyz bei jedem Durchlauf mit dem Wert der Spalte xyz in der aktuell ausgelesenen Zeile. Am Ende ist $xyz also nur eine Variable, die den letzten Wert enthält.

Das $xyz[12] würde dann die Stringvariable in ein Array aus Zeichen umwandeln und die das 13. Zeichen zurückgeben. Das willst du sicher nicht?

Du musst deine Schleife verändern ($xyz durch $xyz[] ersetzen). Und da sie im aktuellen Zustand die Zeilen einfach nur durchnummerieren würde, was dann die Nummerierung durcheinanderbringt wenn du Zeilen löscht, umsortierst etc., würde ich da auch noch gleich die ID-Spalte die du erwähnt hast, benutzen um ein assoziatives Array aufzubauen.

Deine Schleife müsste ungefähr so aussehen:
while($tmp = mysql_fetch_array($result)) $xyz[$tmp["id"]] = $tmp;
 (ich hab das $res mal umbenannt, damit der Sinn deutlicher wird, ausserdem müsstest du "id" durch das ersetzen, was bei dir die ID-Spalte ist)

Leider werden jedoch keine Werte angezeigt.

Wie gesagt, es gibt den 13. Buchstaben des Feldes xyz der letzen Zeile aus. Wenn das Wort dadrin kürzer ist, wird nix ausgegeben.

[snipp]
Das ganze scheint mir aber sehr kompliziert. Vielleicht gibt es ja noch eine andere Möglichkeit, per Auswahlmenü einen zweiten(verdeckten) Wert zu übergeben?

Das habe ich nicht ganz verstanden.

--
Henryk Plötz
Grüße aus Berlin