mysql_fetch_array

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






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( ) ) .

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)

 
;

 
?



Para maiores detalhes , veja também mysql_fetch_row( ) e mysql_fetch_assoc( ) .