mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc --  Returnerer en række, som et associativt array.

Beskrivelse

array mysql_fetch_assoc ( resource result)

Returnerer et associativt array, der nedstammer fra den resulterede række, eller FALSE hvis der er 0 eller flere rækker.

mysql_fetch_assoc() kan sidestilles med mysql_fetch_array() med MYSQL_ASSOC som den anden parameter. Den returnerer kun et associativt array. Det er på denne måde mysql_fetch_array() oprindelig virkede. Hvis du har brug for et numerisk array, så brug associativt, brug mysql_fetch_array().

Hvis 2 eller flere kolonner af resultatet, har samme felt navn, vil den sidste kolonne få første ret. For at tilgå de andre kolonner, af samme navn, skal du enten lave et nummeret array med mysql_fetch_row() eller tilføje alias navne. Se eksemplet ved mysql_fetch_array() for beskrivelse om aliases.

En vigtig ting at huske, er at brugen af mysql_fetch_assoc() ikke er væsentlig langsommere end mysql_fetch_row(), da den tildeler en vigtig tilføjet værdi.

Bemærk: Feltnavne returneret af denne funktion er case-sensitive.

Bemærk: Denne funktion sætter NULL felter til PHP NULL værdien.

Eksempel 1. Et udvidet mysql_fetch_assoc() eksempel

<?php

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

if (!
$conn) {
    echo
"Kunne ikke kontakte databasen: " . mysql_error();
    exit;
}
    
if (!
mysql_select_db("mydbname")) {
    echo
"Kunne ikke vælge mydbname: " . mysql_error();
    exit;
}

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

$result = mysql_query($sql);

if (!
$result) {
    echo
"Kunne ikke udføre forespørgslen ($sql) fra databasen: " . mysql_error();
    exit;
}

if (
mysql_num_rows($result) == 0) {
    echo
"Ingen rækker fundet, intet at skrive";
    exit;
}

// Når en række eksisterer, så put den i $row, som et associativt array
// Vigtigt: Hvis du kun forventer en række, er et loop ikke nødvendigt
// Vigtigt: Hvis du putter extract($row); inden i det følgende loop,
//       vil du lave $userid, $fullname, og $userstatus
while ($row = mysql_fetch_assoc($result)) {
    echo
$row["userid"];
    echo
$row["fullname"];
    echo
$row["userstatus"];
}

mysql_free_result($result);

?>

Se også mysql_fetch_row(), mysql_fetch_array(), mysql_query() og mysql_error().