Michael Schröpl: datensätze auslesen

Beitrag lesen

Hi Joan,

aja, könntest du das bitte genauer erklären?

nicht, daß ich etwas PHP könnte ... aber das Zeug hier sieht so aus,
daß ich das Prinzip zu begreifen glaube.

Diese fetch-Routine liefert offenbar eine ganze Zeile Deiner Tabelle
zurück.
Aus der nachfolgenden Adressierung schließe ich, daß sie als Hash oder
Verweis auf einen Hash oder irgendwas in dieser Art geliefert wird.

while ($row = mysql_fetch_assoc($result)

Nehmen wir mal an, diese Schleife wäre korrekt geklammert ... ;-)

Dann liefe sie so lange, wie die fetch-Routine noch eine weitere
Zeile zu liefern hat. Diese (oder ein Verweise darauf?) wird in $row
gespeichert. Ansonsten wird die Schleife nicht mehr durchlaufen.

{ $arLeute[] = $row; }

Und das hängt anscheinend ein weiteres Element an den Array $arLeute
dran. (Huch, sieht alles irgendwie anders aus als in Perl, aber man
versteht es doch ...)

Nach dieser Schleife hast Du also alle Zeilen Deiner Tabelle in der
Struktur $arLeute drin stehen.
(Übrigens keine Methode, die ich Dir empfohlen hätte - wenn Du nicht
alle Zeilen auf einmal brauchst, dann wäre es besser, direkt nach je-
dem "fetch" die Zeile auszuwerten, das frißt weniger Arbeitsspeicher.)

for($i = 0; $i < count($arLeute); $i++) {

Das ist jetzt eine Schleife über alle Zeilen ...

echo $arLeute[$i]["idk"] ." : " .$arLeute[$i]["name"] ." : " .$arLeute[$i]["vorname"] ."<br />";

Und das klebt anscheinend eine Ausgabezeile zusammen, wobei die
Elemente "idk", "name" und "vorname" aus dem hash (?) entnommen werden,
in den die "fetch"-Funktion die Spalten der jeweiligen Tabellenzeile
abgelegt hat.
(Diese Anweisung hätte auch schon in der ersten Schleife stehen können.)

ich glaub ich steh auf dem schlauch, ich steig da irgendwie nicht
wirklich durch

Der Trick ist, den Bruch zwischen den beiden Universen zu verstehen.

SQL denkt in Mengen; PHP etc. denken in Listen, Schleifen, endlichen
Variablen. Also läßt sich eine Menge von Zeilen nicht durch eine ein-
fache Zuweisung aus der Datenbank ziehen, sondern nur durch eine
Schleife über die gefundenen Zeilen - und jede Zeile besteht wieder
aus den Feldern, wobei Dir diese "fetch"-Funktion erlaubt, innerhalb
der Zeile (des Hash?) diese Felder über ihren Namen anzusprechen.

Besser so?

Viele Grüße
      Michael

P.S.: Gutes Fragen ist auch eine Übungssache. Du schlägst Dich bisher
      tapfer und hast den Beistand von Uschi allemal verdient.