Forum und email

mysql_fetch_array

(PHP 4, PHP 5, PECL mysql:1.0)

mysql_fetch_array — Obtém uma linha como uma matriz associativa, uma matriz numérica, ou ambas

Descrição

array mysql_fetch_array ( resource $result [, int $result_type ] )

Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante.

Parâmetros

result

O resulatado resource que esta sendo avaliado. Este resultado vem 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.

Valor Retornado

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.

Exemplos

Example#1 Consulta com nomes de campos duplicados usando alias

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

Example#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($resultMYSQL_NUM)) {
    
printf("ID: %s  Name: %s"$row[0], $row[1]);  
}

mysql_free_result($result);
?>

Example#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($resultMYSQL_ASSOC)) {
    
printf("ID: %s  Name: %s"$row["id"], $row["name"]);
}

mysql_free_result($result);
?>

Example#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($resultMYSQL_BOTH)) {
    
printf ("ID: %s  Name: %s"$row[0], $row["name"]);
}

mysql_free_result($result);
?>

Notas

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.