(PHP 4, PHP 5)
mysql_fetch_array — Recupera una fila de resultados como un array asociativo, un array numérico o como ambos
Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su lugar, deberían usarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API y P+F relacionadas para más información. Las alternativas a esta función incluyen:
$result
[, int $result_type
= MYSQL_BOTH
] )Devuelve un array que corresponde a la fila recuperada y mueve el puntero de datos interno hacia delante.
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
.
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.
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);
?>
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.