Forum und email
mysql_fetch_assoc

mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc --  Načte výsledný řádek do asociativního pole

Popis

array mysql_fetch_assoc ( resource result )

Funkce vrací asociativní pole hodnot vráceného záznamu nebo FALSE, není-li žádný další záznam.

mysql_fetch_assoc() je akvalentem k mysql_fetch_array() s nepovinným druhým parametrem MYSQL_ASSOC, což vrací pouze asociativní pole. Pokud potřebujete používat číselné indexy spolu s asociativními, použijte mysql_fetch_array().

Pokud dva nebo více sloupců mají stejný název, bude dostupná hodnota pouze toho posledního. Chcete-li přistupovat i k hodnotám ostatních sloupců, musíte k nim v sql dotazu vytvořit aliasy. Název klíče sloupce, k němuž je vytvořem alias, je vždy jméno aliasu a proto není možné použít originální jméno sloupce v sql tabulce. Podívejte se na vysvětlení použití aliasů v příkladu u mysql_fetch_array().

Důležité ovšem je, že použití mysql_fetch_assoc() není nijak významně pomalejší než použití mysql_fetch_row(), pokud je její použití přidanou hodnotou.

Příklad 1. Rozšířený příklad mysql_fetch_assoc()

<?php

    $conn
= mysql_connect("localhost", "mysql_user", "mysql_password");
    
    if (!
$conn) {
        echo
"Nelze se spojit s DB: " . mysql_error();
        exit;
    }
    
    if (!
mysql_select_db("mydbname")) {
        echo
"Nelze vybrat mydbname: " . mysql_error();
        exit;
    }
    
    
$sql = "SELECT id as userid, fullname, userstatus
            FROM   sometable
            WHERE  userstatus = 1"
;

    
$result = mysql_query($sql);

    if (!
$result) {
        echo
"Zpracování dotazu nebylo úspěšné ($sql) na DB: " . mysql_error();
        exit;
    }
    
    if (
mysql_num_rows($result) == 0) {
        echo
"Nenalezeny žádné řádky, nic k zobrazení, takže končím.";
        exit;
    }

    
// Pokud nějaké záznamy dat existují, vlozží každý záznam do asociativního pole $row.
    // Tip: Očekáváte-li pouze jeden záznam, můžete vynechat smyčku.
    // Tip: Přidáte-li do následující smyčky extract($row);, vytvoří se rovnou proměnné $userid, $fullname a $userstatus
    
while ($row = mysql_fetch_assoc($result)) {
        echo
$row["userid"];
        echo
$row["fullname"];
        echo
$row["userstatus"];
    }
        
    
mysql_free_result($result);

?>

Pro další detaily viz. také mysql_fetch_row(), mysql_fetch_array(), mysql_query() a mysql_error().