Was bedeutet mysql_fetch_assoc?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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

sporty4ever 
Fragesteller
 02.06.2014, 14:03

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 :)

1
Alextoexplain  04.06.2014, 16:34
@sporty4ever

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 )

0