Estas líneas de la documentación en php.net son clave:
http://www.php.net/manual/en /mysqli-result.fetch-array.php
En los casos en que dos o más columnas tengan el mismo nombre, la única forma de hacer referencia a la(s) primera(s) aparición(es) de esa columna es mediante un índice numérico. En estos casos, necesita mysqli_fetch_row
o mysqli_fetch_array
con MYSQLI_BOTH
o MYSQLI_NUM
como su segundo argumento (en uso procedimental).
mysqli_fetch_assoc($result)
es solo una abreviatura de mysqli_fetch_array($result, MYSQLI_ASSOC)
.
mysqli_fetch_object
hace lo que esperas:devuelve una fila de resultados como un objeto. Uso de esto sobre mysqli_fetch_assoc
es una cuestión de si un objeto o una matriz representa mejor el registro que se está manejando. El objeto puede ser de la clase que desee:stdClass es la predeterminada.