# mysql_fetch_array

(PHP 4, PHP 5)

mysql_fetch_array — Recupera una fila de resultados como un array asociativo, un array numérico o como ambos

Advertencia

Esta extensión fue declarada obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0. En su lugar debería utilzarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API. Las alternativas a esta función son:

- mysqli_fetch_array()
- PDOStatement::fetch()

### Descripción

mysql_fetch_array(resource `$result`, int `$result_type` = MYSQL_BOTH): array

Devuelve un array que corresponde a la fila recuperada y mueve el puntero de datos interno hacia delante.

### Parámetros

`result`

  El resultado resource que está siendo evaluado. Este resultado proviene de una llamada a mysql_query().

`result_type`

  El tipo de array que va a ser devuelto. Es una constante y puede tomar los siguientes valores: `MYSQL_ASSOC`, `MYSQL_NUM`, y `MYSQL_BOTH`.

### Valores devueltos

Devuelve un array de cadenas que corresponde a la fila recuperada, o `false` si no hay más filas. El tipo del array retornado depende de como esté definido `result_type`. Al utilizar `MYSQL_BOTH` (predeterminado), se obtendrá un array con ambos índices: asociativos y numéricos. Al utilizar `MYSQL_ASSOC`, se obtienen solo los índices asociativos (tal como funciona mysql_fetch_assoc()). Al utilizar `MYSQL_NUM`, se obtienen solo los índices numéricos (tal como funciona mysql_fetch_row()).

Si dos o más columnas del resultado tienen el mismo nombre de campo, la última columna tomará precedencia. Para acceder a la/s otra/s columna/s con el mismo nombre, se deberá usar el índice numérico de la columna o crear un alias para la columna. Para las columnas con alias, no se puede acceder al contenido con el nombre de la columna original.

### Ejemplos

Ejemplo #1 Consulta con nombres de campos duplicados con alias

    SELECT tabla1.campo AS foo, tabla2.campo AS bar FROM tabla1, tabla2

Ejemplo #2 mysql_fetch_array() con `MYSQL_NUM`

`<?php
mysql_connect("localhost", "usuario_mysql", "contraseña_mysql") or
die("No se pudo conectar: " . mysql_error());
mysql_select_db("mibd");
$resultado = mysql_query("SELECT id, nombre FROM mitabla");
while ($fila = mysql_fetch_array($resultado, MYSQL_NUM)) {
printf("ID: %s Nombre: %s", $fila[0], $fila[1]);
}
mysql_free_result($resultado);
?>`

Ejemplo #3 mysql_fetch_array() con `MYSQL_ASSOC`

`<?php
mysql_connect("localhost", "usuario_mysql", "contraseña_mysql") or
die("No se pudo conectar: " . mysql_error());
mysql_select_db("mibd");
$resultado = mysql_query("SELECT id, nombre FROM mitabla");
while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)) {
printf("ID: %s Nombre: %s", $fila["id"], $fila["nombre"]);
}
mysql_free_result($resultado);
?>`

Ejemplo #4 mysql_fetch_array() con `MYSQL_BOTH`

`<?php
mysql_connect("localhost", "usuario_mysql", "contraseña_mysql") or
die("No se pudo conectar: " . mysql_error());
mysql_select_db("mibd");
$resultado = mysql_query("SELECT id, nombre FROM mitabla");
while ($fila = mysql_fetch_array($resultado, MYSQL_BOTH)) {
printf ("ID: %s Nombre: %s", $fila[0], $fila["nombre"]);
}
mysql_free_result($resultado);
?>`

### Notas

> Nota: Rendimiento

> Una cosa importante a tener en cuenta es que el uso de mysql_fetch_array() no es significativamente más lento que el uso de mysql_fetch_row(), aunque provee un valor añadido considerable.

> Nota: Los nombres de los campos devueltos por esta función son sensibles a mayúsculas y minúsculas.

> Nota: Esta función define campos NULOS al valor `null` de PHP.

### Ver también

- mysql_fetch_row() - Obtiene una fila de resultados como un array numérico
- mysql_fetch_assoc() - Recupera una fila de resultados como un array asociativo
- mysql_data_seek() - Mueve el puntero de resultados interno
- mysql_query() - Enviar una consulta MySQL