Forum und email

mysql_fetch_assoc

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

mysql_fetch_assoc — Haal een resultaat rij op als een associatieve array

Beschrijving

array mysql_fetch_assoc ( resource $result )

Haalt een associatieve array op die correspondeert met de gehaalde rij, of FALSE als er geen rijen meer zijn.

mysql_fetch_assoc() is equivalent met het aanroepen van mysql_fetch_array() met MYSQL_ASSOC voor de optionele tweede paramter. Hij geeft alleen een associatieve array terug. Dit is de manier waarop mysql_fetch_array() oorspronkelijk functioneerde. Als je zowel de numerieke als de associatieve indices nodig hebt, gebruik dan mysql_fetch_array().

Als twee of meer kolommen van het resultaat dezelfde veldnaam hebben zal de laatste kolom precedentie hebben. Om toegang te krijgen tot de andere kolommen met dezelfde naam, moet je het resultaat verkrijgen via numiereke indices door mysql_fetch_row() te gebruiken of alias namen toevoegen. Zie het voorbeeld bij de mysql_fetch_array() beschrijving over aliassen.

Belangrijk is het door te hebben dat mysql_fetch_array() is niet significant langzamer dan het gebruik van mysql_fetch_row(), terwijl het een duidelijke toegevoegde waarde heeft.

Example#1 Een uitgebreid mysql_fetch_assoc() voorbeeld

<?php
    
    $conn 
mysql_connect("localhost""mysql_user""mysql_password");
    
    if (!
$conn) {
        echo 
"Kan geen verbinding maken met de DB: " mysql_error();
        exit;
    }
    
    if (!
mysql_select_db("mydbname")) {
        echo 
"Kan mydbname niet selecteren: "
    
}
    
    
$sql "SELECT id as userid, fullname, userstatus 
            FROM   sometable
            WHERE  userstatus = 1"
;

    
$result mysql_query($sql);

    if (!
$result) {
        echo 
"Kon de query ($sql) niet uitvoeren: " mysql_error();
        exit;
    }
    
    if (
mysql_num_rows($result) == 0) {
        echo 
"Geen rijen gevonden, niets te printen, dus stoppen.";
        exit;
    }

    
// Terwijl er nog een rij met data is, stop die rij in $row als een
    // associatieve array. Als je slechts een rij terug verwacht, hoef je
    // geen loop te gebruiken. Als je extract($row); binnen de volgende
    // loop plaatst, ontstaan $userid, $fullname en $userstatus.
    
while ($row mysql_fetch_assoc($result)) {
        echo 
$row["userid"];
        echo 
$row["fullname"];
        echo 
$row["userstatus"];
    }
        
    
mysql_free_result($result);
?>

Voor verdere details, zie ook mysql_fetch_row(), mysql_fetch_array() en mysql_query().