MIK: Wie kann ich Variablen dynamisch erzeugen?

Beitrag lesen

Hi Vinzenz,

Lese bitte sorgfältig folgenden Abschnitt http://www.php.net/manual/de/language.types.array.php. Da sind Arrays genau erklärt, auch warum das eine oder andere nicht funktioniert :-)

Hm, das hatte ich schon gelesen, aber wohl nicht sorgfältig genug.. Wie schon erwähnt, sind Arrays für mich ziemliches Neuland.

Etwas weiter unten ist noch ein interessanter Thread [pref:t=74133&m=427285] zur Problematik echo '' versus echo "" mit einem aufschlussreichen Verweis ins Archiv </archiv/2003/8/54141/#m300888>.

Das habe ich noch nicht gelesen, werde mir aber die Links mal kopieren, ich glaube, ich zieh mir erstmal den von Tom empfohlenen Tutor rein. :)

Zur Schreibweise: Du bekommst doch Deine Daten aus einer Datenbank. Wenn Du Deine Datensätze in einer Schleife aus- und in ein Array einliest, dann erhältst Du ein Array der Form
  $data[0], $data[1], ... (vorausgesetzt, Dein Arrayindex beginnt bei 0)

Jeder einzelne Datensatz stellt wiederum ein Array dar, auf dessen Elemente Du je nach verwendeter Funktion über die Spaltennummer, den Spaltennamen oder beides http://www.php.net/manual/de/function.mysql-fetch-array.php zugreifen kannst.

Somit kannst Du mit
  $data[0]['Titel']
auf den Inhalt der Spalte Titel des ersten Datensatzes zugreifen.

Innerhalb von doppelten Anführungszeichen werden Variablen interpoliert, d.h. ausgewertet, deswegen macht es einen Unterschied, ob Du

echo $data[0]['Titel'] . "<hr>"; (richtig)
  echo "$data[0]['Titel']<hr>"; (falsch)
  echo "$data[0][Titel]<hr>"; (richtig, aber nicht so performant)

schreibst.

So wirklich verstehe ich das jetzt gerade nicht, aber wie gesagt, ich habe da eine gewaltige Wissens- und Verständnis-Lücke. Bspw. würde ich jetzt vermuten, dass Titel (doch auch ein Array, oder?) direkt data untergeordnet ist und dann die tatsächlichen Daten Elemente von Titel sind. Warum dann also $data[0]['Titel'] statt (wie auch vom Tom geschrieben) $data['Titel'][0]? Oder ist die Reihenfolge egal?

Das Tutorial, das Tom Dir nahegelegt hat (hab' die Antwort gerade gesehen), solltest Du gründlich durcharbeiten. Denn Arrays sind ein sehr wichtiger Bestandteil von Programmiersprachen, die Dir Sackgassen wie Dein erster Entwurf (das hast Du richtig erkannt) und erste Workarounds (variable Variablen) ersparen. Statt dessen bekommst Du eine sehr genaue Kontrolle über den Datenzugriff und komfortable Schleifenkonstrukte wie z.B. foreach.

Ja, das werde ich machen, Arrays habe ich bislang nur in eindimensionaler Form, also array(1,2,3,4,5,..) verwandt.

Dir auch vielen Dank für die detaillierte Antwort und die Links,

beste Wünsche und einen schönen Abend,

MIK