(PHP 4, PHP 5)
mysql_fetch_array — Obtém uma linha como uma matriz associativa, uma matriz numérica, ou ambas
$result
[, int $result_type
] )Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante.
result
O resultado tipo resource que está sendo avaliado. Esse resultado é original de uma chamada a mysql_query().
result_type
O tipo de array que deve ser obtida. é uma constante e pode
ter os seguintes valores: MYSQL_ASSOC
,
MYSQL_NUM
, e o valor padrão de
MYSQL_BOTH
.
Retorna uma array que corresponde a linha obtida, ou FALSE
se não houver mais linhas. O tipo da array retornada depende de
como result_type
esta definido. Usando
MYSQL_BOTH
(padrão), você terá um array com ambos os
índices, numérico e associativo. Usando MYSQL_ASSOC
, você
tem apenas os índices associativos (como mysql_fetch_assoc()
funciona), usando MYSQL_NUM
, você tem apenas os índices numéricos
(como mysql_fetch_row() funciona).
Se duas ou mais colunas do resultado tiverem os mesmos nomes de campos, a ultima coluna terá precedencia. Para acessar a(s) outra(s) coluna(s) com o mesmo nome, você deverá usar o índice numérico da coluna ou fazer um alias para a coluna. Para colunas com alias, você não pode acessar os conteúdos com o nome original da coluna.
Exemplo #1 Consulta com nomes de campos duplicados usando alias
SELECT table1.field AS foo, table2.field AS bar FROM table1, table2
Exemplo #2 mysql_fetch_array() com MYSQL_NUM
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Não foi possível 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 foi possível 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 foi possível 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);
?>
Nota: Performance
Uma coisa importante para notar que usar mysql_fetch_array() não é significativamente mais lento do que usar mysql_fetch_row(), enquanto provê um valor agregado significante.
Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.
Nota: Esta função assimila campos NULL para o o
NULL
do PHP.