mysql_fetch_assoc

(PHP 4 >= 4.0.3)

mysql_fetch_assoc --  Recupera una fila de resultado como una matriz asociativa

Descripción

array mysql_fetch_assoc ( resource resultado)

Devuelve una matriz asociativa que corresponde a la fila recuperada, o FALSE si no hay más filas.

mysql_fetch_assoc() es equivalente a llamar mysql_fetch_array() con MYSQL_ASSOC como segundo parámetro opcional. Únicamente devuelve una matriz asociativa. Esta es la forma en que originalmente trabajaba mysql_fetch_array(). Si necesita índices numéricos así como asociativos, utilice mysql_fetch_array().

Si dos o más columnas del resultado tienen los mismos nombres de campo, la última columna tomará precedencia. Para acceder a otras columnas con el mismo nombre, tendrá que acceder al resultado con índices numéricos mediante el uso de mysql_fetch_row() o agregar sobrenombres. Vea el ejemplo en la descripción de mysql_fetch_array() respecto a los sobrenombres.

Algo importante a notar es que el uso de mysql_fetch_assoc() no es significativamente más lento que el uso de mysql_fetch_row(), al mismo tiempo que provee un valor agregado considerable.

Nota: Field names returned by this function are case-sensitive.

Ejemplo 1. Un ejemplo extendido de mysql_fetch_assoc()

<?php

    $conexion = mysql_connect("localhost", "mysql_user", "mysql_password");
    
    if (!$conexion) {
        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, status_usuario 
            FROM   alguna_tabla
            WHERE  status_usuario = 1";

    $resultado = mysql_query($sql);

    if (!$resultado) {
        echo "No pudo ejecutarse satisfactoriamente la consulta ($sql) " .
             "en la DB: " . 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 una matriz asociativa
    // Nota: Si solo espera una fila, no hay necesidad de usar un ciclo
    // Nota: Si coloca extract($fila); dentro del siguiente ciclo,
    // estara creando $id_usuario, $nombre_completo, y $status_usuario

    while ($fila = mysql_fetch_assoc($resultado)) {
        echo $fila["id_usuario"];
        echo $fila["nombre_completo"];
        echo $fila["status_usuario"];
    }
	    
    mysql_free_result($resultado);

?>

Vea también mysql_fetch_row(), mysql_fetch_array(), mysql_query() y mysql_error().