Forum und email

mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5, PECL mysql:1.0)

mysql_fetch_assoc — Liefert einen Datensatz als assoziatives Array

Beschreibung

array mysql_fetch_assoc ( resource $Ergebnis )

Liefert ein assoziatives Array, das den geholten entprechenden Datensatz enthält. Sind keine weiteren Datensätze vorhanden gibt diese Funktion FALSE zurück.

mysql_fetch_assoc() entspricht in der Funktionsweise exakt dem Aufruf von mysql_fetch_array() mit Angabe von MYSQL_ASSOC als optionalen zweiten Parameter. Diese Funktion liefert Ihnen nur ein assoziatives Array. Das war das ursprüngliche Verhalten von mysql_fetch_array(). Falls Sie sowohl numerische, als auch assoziative Indizes benötigen, verwenden Sie mysql_fetch_array().

Falls zwei oder mehrere Felder des Ergebnisses den gleichen Feldnamen haben, dann wird nur der Wert des letzten Felds im Array unter diesem Feldnamen abgelegt. Um auch auf die anderen, gleichnamigen, Felder zugreifen zu können, müssen Sie entweder numerische Indizes und damit mysql_fetch_row() benutzen, oder Aliase für Ihre Felder anlegen. Zur Verwendung von Aliasen schauen Sie sich das Beispiel unter der Beschreibung von mysql_fetch_array() an.

Zu betonen ist, dass der Gebrauch von mysql_fetch_assoc() nicht signifikant langsamer ist als mysql_fetch_row(), obwohl die Funktion einen sichtlichen Mehrwert bietet.

Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

Hinweis: Diese Funktion setzt NULL Felder auf den PHP Wert NULL.

Example#1 Ein ausführliches Beispiel zumysql_fetch_assoc()

<?php

$conn 
mysql_connect("localhost""mysql_user""mysql_password");

if (!
$conn) {
    echo 
"Keine Verbindung zur DB: " mysql_error();
    exit;
}

if (!
mysql_select_db("mydbname")) {
    echo 
"Kann  mydbname nicht auswählen: " mysql_error();
    exit;
}

$sql "SELECT id as userid, fullname, userstatus 
        FROM   sometable
        WHERE  userstatus = 1"
;

$result mysql_query($sql);

if (!
$result) {
    echo 
"Anfrage ($sql) konnte nicht ausgeführt werden : " mysql_error();
    exit;
}

if (
mysql_num_rows($result) == 0) {
    echo 
"Keine Zeilen gefunden, nichts auszugeben, daher Abbruch";
    exit;
}

// Solange eine Zeile mit Daten existiert, wird dies in dem assoziativen Array
// $row abgelegt.
// Anmerkung: Wenn Sie nur eine Zeile erwarten, brauchen Sie keine Schleife.
// Anmerkung: Wenn Sie extract($row) innerhalb der folgenden Schleife
//            verwenden, können Sie damit die Variablen
//            $userid, $fullname und $userstatus erzeugen.

while ($row mysql_fetch_assoc($result)) {
    echo 
$row["userid"];
    echo 
$row["fullname"];
    echo 
$row["userstatus"];
}

mysql_free_result($result);

?>

Siehe auch mysql_fetch_row(), mysql_fetch_array(), mysql_query() und mysql_error()