mysql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_array --  Busca o resultado de uma linha e o coloca como uma matriz associativa, matriz numérica ou ambas.

Descrição

array mysql_fetch_array ( resource result [, int result_type] )

Retorna uma matriz que corresponde a linha buscada, ou FALSE se não houverem mais linhas.

mysql_fetch_array() é uma versão estendida de mysql_fetch_row(). Além de guardar os dados em um índice numérico na matriz, também guarda os dados em índices associativos, usando o nome do campo como chave.

Se duas ou mais colunas do resultado tiverem o mesmo nome do campo, a ultima coluna terá precedência. Para acessar as outras coluna(s) com o mesmo nome, você deve usar o índice numérico da coluna ou fazer um apelido para a coluna. Para colunas com apelido, você não pode acessar os conteúdos com o nome original da coluna (usando 'field' neste exemplo).

Exemplo 1. Query com nomes de campo duplicados

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

Uma coisa importante para notar é que usar mysql_fetch_array() não é significativamente mais lenta do que usar mysql_fetch_row(), enquanto que produz um resultado melhor de se usar.

O segundo argumento, que é opcional, result_type em mysql_fetch_array() é uma constante que pode ter os seguintes valores: MYSQL_ASSOC, MYSQL_NUM, e MYSQL_BOTH. Isto foi adicionado no PHP 3.0.7. MYSQL_BOTH é o padrão para este argumento.

Usando MYSQL_BOTH, você terá uma matriz com os índices associativos e numéricos. Usando MYSQL_ASSOC, você terá apenas os índices associativos (como funciona mysql_fetch_assoc()), usando MYSQL_NUM, você terá apenas os índices numéricos (como funciona mysql_fetch_row()).

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Exemplo 2. mysql_fetch_array com MYSQL_NUM

<?php
mysql_connect
("localhost", "mysql_user", "mysql_password") or
    die(
"Não pude conectar: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

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

mysql_free_result($result);
?>

Exemplo 3. mysql_fetch_array com MYSQL_ASSOC

<?php
mysql_connect
("localhost", "mysql_user", "mysql_password") or
    die(
"Não pude conectar: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while (
$row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    
printf ("ID: %s  Name: %s", $row["id"], $row["name"]);
}

mysql_free_result($result);
?>

Exemplo 4. mysql_fetch_array com MYSQL_BOTH

<?php
mysql_connect
("localhost", "mysql_user", "mysql_password") or
    die(
"Não pude conectar: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while (
$row = mysql_fetch_array($result, MYSQL_BOTH)) {
    
printf ("ID: %s  Name: %s", $row[0], $row["name"]);
}
   
mysql_free_result($result);
?>

Veja também mysql_fetch_row() e mysql_fetch_assoc().