PHP/Auslesen der Ergebnisliste

Aus Mikiwiki
< PHP
Zur Navigation springen Zur Suche springen

Mit folgenden Funktionen kommt man an die Werte der Ergebnisliste.

Funktion Beschreibung
mysql_fetch_array Einlesen der aktuellen Ergebnisliste in ein Array. Arrays sind vor allem für die umfassende Weiterverarbeitung von Daten zu empfehlen. Der Parameter "$result" sollte das Ergebnis einer SQL-Abfrage enthalten (also ein von der Funktion "mysql_query" erzeugtes Ergebnishandle). Der Parameter "ARRAYTYPE" ist optional und kann folgende Werte aufweisen:
  • mit "MYSQL_ASSOC" wird ein assoziatives Array gebildet, das als Indizes die Feldnamen und als Wert den Feldinhalt enthält.
  • mit "MYSQL_NUM" wird ein numerisches Array erzeugt, die Felder werden von "0" beginnend durchnumeriert.
  • mit "MYSQL_BOTH" (Standardeinstellung) wird ein assoziatives Array gebildet, dessen Indizes sowohl numerische Werte als auch Feldnamen enthalten.
$array = mysql_fetch_array($result, <ARRAYTYPE>)

Achtung: Wird der Parameter "MYSQL_ASSOC" vergessen und nicht nach numerischen Indizes ausgewählt, so werden alle Werte doppelt ausgegeben, da sowohl die numerischen Indizes als auch die Schlüsselwerte auf Grundlage der Feldnamen vorhanden sind.

mysql_fetch_assoc Entspricht der Funktion "mysql_fetch_array" mit dem Parameter "MYSQL_ASSOC" und ist etwas schneller.
mysql_fetch_object Bildet die Felder als Eigenschaften ab. Vor allem beim Zugriff auf einzelne Felder mit bekannten Namen ist diese Version einfacher als die Anwendung assoziativer Arrays.
$object = mysql_fetch_object($result);

Der Zugriff sieht dann wie folgt aus.

$wert   = $object->$feldname;
mysql_fetch_row Entspricht der Funktion "mysql_fetch_array" mit dem Parameter "MYSQL_NUM".
$array = mysql_fetch_row($result);
mysql_result Gibt ein bestimmtes Feld eines Datensatzes aus. Dabei wird für "$row" die Nummer der Reihe (analog zu "mysql_date_seek") und für "$field" der Index des Feldes (beginnend mit 0) oder der Feldname eingesetzt. Als Feldname kann auch die Kombination "Tabellenname.Feldname" angegeben werden, wenn die Ergebnisliste mehrdeutige Namen für Spaltenbezeichner enthält. Diese Funktion ist langsamer und sollte nur ausnahmsweise eingesetzt werden.
$wert  = mysql_result($result, $row, $field);