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
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($result, MYSQL_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($result, MYSQL_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($result, MYSQL_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.