(PHP 4 >= 4.0.3, PHP 5)
mysql_fetch_assoc — Recupera una fila de resultados como un array asociativo
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
)Devuelve un array asociativo que corresponde a la fila recuperada y mueve el puntero de datos interno hacia adelante. mysql_fetch_assoc() es equivalente a llamar a mysql_fetch_array() con MYSQL_ASSOC como segundo parámetro opcional. Únicamente devuelve un array asociativo.
result
El resultado resource que está siendo evaluado. Este resultado proviene de una llamada a mysql_query().
Devuelve un array asociativo de strings que corresponde a la fila recuperada, o
FALSE
si no hay más filas disponibles.
Si dos o más columnas del resultado tienen los mismos nombres de campo, la última columna tomará precedencia. Para acceder a la/s otra/s columna/s con el mismo nombre, se tendrá que acceder al resultado con índices numéricos mediante el uso de mysql_fetch_row() o agregando sobrenombres. Véase el ejemplo en la descripción de mysql_fetch_array() respecto a los sobrenombres.
Ejemplo #1 Un ejemplo desarrolado de mysql_fetch_assoc()
<?php
$conexión = mysql_connect("localhost", "usuario_mysql", "contraseña_mysql");
if (!$conexión) {
echo "No pudo conectarse a la BD: " . mysql_error();
exit;
}
if (!mysql_select_db("nombre_de_la_bd")) {
echo "No ha sido posible seleccionar la BD: " . mysql_error();
exit;
}
$sql = "SELECT id as id_usuario, nombre_completo, estatus_usuario
FROM alguna_tabla
WHERE estatus_usuario = 1";
$resultado = mysql_query($sql);
if (!$resultado) {
echo "No se pudo ejecutar con exito la consulta ($sql) en la BD: " . mysql_error();
exit;
}
if (mysql_num_rows($resultado) == 0) {
echo "No se han encontrado filas, nada a imprimir, asi que voy a detenerme.";
exit;
}
// Mientras exista una fila de datos, colocar esa fila en $fila como un array asociativo
// Nota: Si solo espera una fila, no hay necesidad de usar un bucle
// Nota: Si coloca extract($fila); dentro del siguiente bucle,
// estará creando $id_usuario, $nombre_completo, y $estatus_usuario
while ($fila = mysql_fetch_assoc($resultado)) {
echo $fila["id_usuario"];
echo $fila["nombre_completo"];
echo $fila["estatus_usuario"];
}
mysql_free_result($resultado);
?>
Nota: Rendimiento
Algo importante a observar es que el uso de mysql_fetch_assoc() 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.