Forum und email
mysql_fetch_array

mysql_fetch_array

(PHP 3, PHP 4, PHP 5)

mysql_fetch_array --  Načte výsledný řádek do asociativního, čísleného pole nebo obojího.

Popis

array mysql_fetch_array ( resource result [, int result_type] )

Funkce vrací pole hodnot načteného záznamu nebo FALSE, není-li žádný další řádek.

mysql_fetch_array() je rozšířenou verzí mysql_fetch_row(). Navíc jsou zde data uložena v poli nejen pod číselnými klíči, ale také pod asociativními textovými klíči jmenujícími se podle názvu sloupce sql tabulky.

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 (viz. 'sloupec' v následujícím příkladu).

Příklad 1. Dotaz se zdvojenými názvy polí

select tabulka1.sloupec as sloupec1, tabulka2.sloupec as sloupec2
from tabulka1, tabulka2

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

Nepovinný druhý parametr result_type v mysql_fetch_array() je komstanta, která může nabývat následujících hodnot: MYSQL_ASSOC, MYSQL_NUM, a MYSQL_BOTH. Tato vlastnost byla přidána v PHP 3.0.7. Výchozí hodnota je MYSQL_BOTH.

Použitím MYSQL_BOTH získáte pole s asociativními i číselnými klíči. Použitím MYSQL_ASSOC získáte pole pouze s asociativními klíči (stejně funguje mysql_fetch_assoc()) a použitím MYSQL_NUM, pole obsahovat pouze číselné klíče (tak funguje mysql_fetch_row()).

Příklad 2. mysql_fetch_array s MYSQL_NUM

<?php
    mysql_connect
("localhost", "mysql_uziv", "mysql_heslo") or
        die(
"Nelze se spojit");
    
mysql_select_db("mojedb");

    
$result = mysql_query("SELECT id, jmeno FROM moje_tabulka");

    while (
$row = mysql_fetch_array($result, MYSQL_NUM)) {
        
printf ("ID: %s  Jméno: %s", $row[0], $row[1]);  
    }

    
mysql_free_result($result);
?>

Příklad 3. mysql_fetch_array s MYSQL_ASSOC

<?php
    mysql_connect
("localhost", "mysql_uziv", "mysql_heslo") or
        die(
"Nelze se spojit");
    
mysql_select_db("mojedb");

    
$result = mysql_query("SELECT id, jmeno FROM moje_table");

    while (
$row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        
printf ("ID: %s  Jméno: %s", $row["id"], $row["jmeno"]);
    }

    
mysql_free_result($result);
?>

Příklad 4. mysql_fetch_array s MYSQL_BOTH

<?php
    mysql_connect
("localhost", "mysql_uziv", "mysql_heslo") or
        die(
"Nelze se spojit");
    
mysql_select_db("mojedb");

    
$result = mysql_query("SELECT id, jmeno FROM moje_table");

    while (
$row = mysql_fetch_array($result, MYSQL_BOTH)) {
        
printf ("ID: %s  Jméno: %s", $row[0], $row["jmeno"]);
    }

    
mysql_free_result($result);
?>

Viz také mysql_fetch_row() a mysql_fetch_assoc().