Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/11/2012, 12:50
Avatar de jor_0203
jor_0203
 
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 13 años, 1 mes
Puntos: 8
Respuesta: ¿se puede llamar a las base de datos con la funcion mysql_fetch_array cua

Cita:
Iniciado por vosk Ver Mensaje
"...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
pero entonces como puedo saber el ultimo dato de cada búsqueda
como por ejemplo
$as=mysql_query("select * from usuario where nombre like '$nombre' limit 7 offset 0");
for($a2=0; $a2=mysql_fetch_array($as); $a2++)
{
echo $a2[0]."-";
echo $a2[1]."<br />";
}


como puedo saber el ultimo dato de cada búsqueda de 7 elementos

es por eso que preguntaba
gracias