Hola,
Si te fijas en el manual,
www.php.net/mysql_fetch_array , te dice que por defecto te crea un array con 2 elementos por campo, uno usando como indice el nombre del campo, y otro usando como indice la posicion en la lista de campos del select (comenzando en 0). Lo puedes ver si hacer un:
Código PHP:
echo '<pre>';
print_r($row);
echo '</pre>';
La razon por la que no puedas acceder por el nombre del campo puede ser porque en la consulta no tienes un nombre valido de campo. Por ejemplo, si tienes:
SELECT COUNT(*), tabla.campo FROM ..
La unica forma de acceder a esos 2 campos es con el indice numerico. El primero porque es una funcion, y el segundo porque es de la forma tabla.campo (esto no se sigue pasando, a mi me pasaba). La solucion es usar "alias" para esos campos, y usar el "alias" como indice:
SELECT COUNT(*) as total, tabla.campo as mi_campo FROM ..
Saludos.