Foros del Web » Programando para Internet » PHP »

mysql_fetch_assoc y mysql_fetch_array

Estas en el tema de mysql_fetch_assoc y mysql_fetch_array en el foro de PHP en Foros del Web. Hola a todos, He estado buscando en la red, en php.net, wikipedia y en otros sitios pero no logro comprender la diferencia entre ambas funciones. ...
  #1 (permalink)  
Antiguo 01/08/2006, 08:58
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 2 meses
Puntos: 5
mysql_fetch_assoc y mysql_fetch_array

Hola a todos,

He estado buscando en la red, en php.net, wikipedia y en otros sitios pero no logro comprender la diferencia entre ambas funciones. La verdad es que no comprendo el concepto de array asociativo, quizás lo uso a diario, pero no conozco el procedimiento por ese nombre.

Simplemente me gustaria conocer la diferencia entre ambas funciones, porque yo siempre uso el mysql_fetch_array, pero me he dado cuenta que el mysql_fetch_assoc funciona de igual forma.

Gracias de antemano!
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #2 (permalink)  
Antiguo 01/08/2006, 09:17
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
mysql_fetch_array() "por defecto" crea un arreglo con las columnas de una fila del recordset el cual puede ser accedido por claves (array asociativo) o por un indice numérico. Digo por defecto, pues puede recibir un parámetro que le indique de que tipo sea el array().
mysql_fetch_assoc() sólo obtiene un array asociativo, lo que implica un array más pequeño.
  #3 (permalink)  
Antiguo 01/08/2006, 09:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
Hola!
1)
Un Array Asociativo es aquel que tiene nombres clave por indices es decir:
Código PHP:
$persona = array(
     
"nombre" => "Pedro",
     
"edad" => 30,
     
"carros" => 5,
     
"profesion" => "Ingeniero",
); 
Luego puedes acceder a un elemento por su nombre ej:
Código PHP:
$edad $persona["edad"]; 
2)
La diferencia fundamental es que mysql_fetch_array acepta otro parametro que es el resultype, el cual puede ser MYSQL_NUM, MYSQL_BOTH, o MYSQL_ASSOC, esto le dice a la funcion como quieres que te regrese el resultado, si como un array con indices numericos, array con indices asociativos, o ambos.

Asi que llamar a mysql_fetch_assoc( $result ), es lo mismo a llamar mysql_fetch_array( $result, MYSQL_ASSOC ), porque ambas te regresa un array asociativo.
  #4 (permalink)  
Antiguo 01/08/2006, 09:39
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
mysql_fetch_row (ya que estamos jeje):
-> genera una matriz con los datos, con un índice numérico, lo que quiere decir que a cada elemento se accede con un índice (0, 1, 2, ...)

mysql_fetch_assoc:
-> genera una matriz asociativa, esto es, en vez de tener índices enteros, usa cadenas como índices. En este caso específico, la cadena que usa como índice es el nombre del campo en la bd.

mysql_fetch_array():
Ésta funcion es como un 'rejunte' de las otras dos, ya que puede funcionar como la primera o como la segunda según el valor de su segundo parámetro.

Ejemplo:
mysql_query(SELECT campo1, campo2 FROM mitabla......)

$matriz = mysql_fetch_row....
resulta....
$matriz[0] = valor de campo1
$matriz[1] = valor de campo2

mientras que si $matriz = mysql_fetch_assoc..
$matriz['campo1'] = valor de campo1
$matriz['campo2'] = valor de campo2


Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 10:46.