"...se puede llamar a las base de datos con la funcion mysql_fetch_array..."
mysql_fetch_array no llama a la base de datos, lo que hace es convertir los datos retornados por una consulta (query) a tipo array que por defecto es indexado y asociado por clave-valor en base a los campos consultados
Código:
$resultado= mysql_query("SELECT id, nombre FROM usuario ");
while(($resultado= mysql_fetch_array($datos, MYSQL_BOTH))) {
....
}
En este ejemplo $dato es un array indexado y asociativo (echa un vistazo a algun manual de php mysql para ver mas opciones), y que solo tiene 2 elementos: $dato[0] que es igual a $dato['id'], y $dato[1] que es igual a $dato['nombre']
No puedes acceder al dato $dato[32] simplemente porque no existe. Si quieres consultar el nombre del registro bajo el id=32 tienes que consultar con ese filtro, o si quieres sacarlo todo tienes que recorrer todos los datos con el while sobre fetch_array y usar un condicional para el id que quieras
Código:
//forma bruta
$resultado= mysl_query("SELECT id,name FROM usuarios");
while(($dato = mysql_fetch_array($resultado, MYSQL_BOTH))) {
if($dato['id'] == 32) {
echo $dato['nombre'];
}
}
//forma neta
$resultado= mysl_query("SELECT name FROM usuarios WHERE id=32");
$dato = mysql_fetch_array($resultado, MYSQL_BOTH);
echo $dato['nombre'];
Ten en cuenta que he omitido todas las comprovaciones de error, per es necesario ponerlas.
Por las demas pruebas que has hecho:
$a2[32] te arroja un error de indice inexistente ya que fetch_array genera un array de 2 elementos (id y nombre)
32[0] te arroja un error de sintaxi, 32 es un tipo entero y no tiene indices
$a=32; $a[0]; desde que asignas 32 a la variable $a esta se convierte en tipo entero, no en tipo array por lo que no puedes acceder a ningun indice
Saludos
vosk