mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc --  Busca o resultado de uma linha e o coloca numa matriz associativa

Descrição

array mysql_fetch_assoc ( resource result )

Retorna uma matriz associativa que corresponde a linha ou FALSE se não houverem mais linhas.

mysql_fetch_assoc() é equivalente a chamar mysql_fetch_array() com MYSQL_ASSOC para o segundo parâmetro, que é opcional. Somente retorna uma matriz associativa. Este é o jeito que mysql_fetch_array() funcionava originalmente. Se você precisa dos índices numéricos assim como o associativo, use mysql_fetch_array().

Se duas ou mais colunas do resultado tiverem o mesmo nome do campo, a ultima coluna terá precedência. Para acessar as outras coluna(s) com o mesmo nome, você deve usar o índice numérico da coluna usando mysql_fetch_row() ou fazer um apelido para a coluna. Veja o exemplo em mysql_fetch_array() uma descrição para apelidos.

Uma coisa importante para notar é que usar mysql_fetch_assoc() não é significativamente mais lenta do que usar mysql_fetch_row(), enquanto produz um resultado melhor de usar.

Nota: Nomes de campos nesta função diferenciam maiúsculas e minusculas.

Exemplo 1. mysql_fetch_assoc()

<<?php

$conn
= mysql_connect("localhost", "mysql_user", "mysql_password");

if (!
$conn) {
    echo
"Não foi possível conectar com o banco de dados: " . mysql_error();
    exit;
}
    
if (!
mysql_select_db("mydbname")) {
    echo
"Não foi possível selecionar mydbname: " . mysql_error();
    exit;
}

$sql = "SELECT id as userid, fullname, userstatus
        FROM   sometable
        WHERE  userstatus = 1"
;

$result = mysql_query($sql);

if (!
$result) {
    echo
"Não foi possível executar a consulta ($sql) apartir do banco de dados: " . mysql_error();
    exit;
}

if (
mysql_num_rows($result) == 0) {
    echo
"Não foram encontradas linhas, nada para mostrar, então estou saindo";
    exit;
}

// Enquanto existir uma linha de dados, coloca esta linha em $row como uma matriz associativa
// Nota: Se você esta esperando apenas uma linha, nõa é necessário usar um loop
// Note: Se você colocar extract($row); dentro do loop a seguir, você então
//       criará $userid, $fullname, e $userstatus
while ($row = mysql_fetch_assoc($result)) {
    echo
$row["userid"];
    echo
$row["fullname"];
    echo
$row["userstatus"];
}

mysql_free_result($result);

?>

Veja também mysql_fetch_row(), mysql_fetch_array() e mysql_query().