Was bedeutet mysql_fetch_assoc?
An alle Informatiker: Ich möchte einen MYSQL-Befehl in PHP einbinden. Ich habe auch eine Datenbank, die ich mit: while ($row=mysql_fetch_assoc($result)) { echo"$row[id]. $row[Vorname], $row[Nachname]
"; }
ausgebe. Aber was bedeutet eigentlich das mysql_fetch_assoc???
Danke schonmal im Vorraus :)
2 Antworten
Hello there,
bevor ich dir auch auf PHP.net den Link zeige. Wenn du einen Query mit mysql_query ausführst, bekommst du hinterher eine Ergebnismenge zurück, ein sogenanntes MySQL-Result.
Zur Weiterverarbeitung kennt die MySQL-Schnittstelle mehrere Möglichkeiten, wie dieses Result am Ende dann ausgespuckt wird.
Dazu stehen vier verschiedene Funktionen zur Verfügung, die insgesamt drei verschiedene Ausgaben generieren:
mysql_fetch_row
spuckt die Ergebnisse als numerisches Array aus.
mysql_fetch_assoc
spuckt die Ergebnisse als assoziiertes Array aus.
mysql_fetch_array
kann eins von beiden oder beides, je nachdem was als zweiter Parameter übergeben wird. Möglich sind hier MYSQLASSOC, MYSQLNUM und MYSQL_BOTH.
Zuletzt gibt es noch
mysql_fetch_object
das die Ergebnisse als Objekt ausspuckt.
Letzlich entsteht der Unterschied nur, wie du dann auf ein einzelnes Feld deines geholten Datensatzes zurück greifst.
Bei einem numerischen Array so:
$datensatz[1] // statt 1 kann natürlich eine beliebige Indexposition zwischen 0 und n stehen.
Bei einem assoziierten Array so:
$datensatz['namedesattributs']
Bei einem Objekt so:
$datensatz->namedesattributs
Hoffe ich konnte dir helfen.
MfG
Alex
Hello there,
das ist recht einfach. Im vorliegenden Fall sind alle drei Konstrukte, also assoziiertes Array, numerisches Array und Objekt zweiwertige Konstrukte.
Es handelt sich jeweils um Möglichkeiten Daten strukturiert zu speichern.
Bei einem numerischen Array wird auf die einzelnen Werte - hier die Werte der Attribute aus der Datenbank über Indizes zugegriffen. Das heißt, es wird jedem Wert eine Zahl von 0 - n in aufsteigender Reihenfolge zugewiesen und jeder der im numerischen Array abgespeicherten Werte (Values) kann über die jeweilige Indexposition abgefragt werden.
Bei einem assoziierten Array gibt es ebenfalls Werte, aber keine Indizes, sondern sogenannte Keys. Das heißt jeder "Wert" hat einen eigenen Namen, den "Key". Beispiel: Haarfarbe => blond, Augenfarbe => blau. Haarfarbe und Augenfarbe wären jeweils die Keys und blond, bzw. blau die Values. Man fragt die Werte, daher hier über den jeweiligen Key ab.
Bei einem Objekt geht man ähnlich vor, wie bei einem assoziierten Array. Die Werte der Attribute aus der Datenbank werden in einem Objekt ebenfalls als Attribut gespeichert und mit dem entsprechenden Wert versehen. Ein Objekt kann jedoch noch erweitert werden, etwa auch um Methoden, daher sind hier mehr Optionen möglich.
In deinem Fall, kannst du jedoch alle drei Optionen wählen.
MfG
Alex
(krieg ich nun meinen Stern? :O )
Hier bitte schön ;)
http://de2.php.net/manual/de/function.mysql-fetch-assoc.php
LG, Dittmer
Danke du hast mir sehr geholfen! ;) aber ich bin auf den begriff assoziiertes Array schon öfter gestoßen... Kannst du mir auch erklären was das genau bedeutet? Wäre super :)