Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/03/2006, 16:06
Avatar de nicolaspar
nicolaspar
 
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Ambas generan un vector de los resultados. También esta mysql_fetch_assoc.
Entonces:
mysql_fetch_row:
Genera un vector no asociativo, esto sería del tipo:
$arr[] = "uno";
$arr[] = "dos";
Donde $arr[0]= uno y $arr[1] = dos.
mysql_fetch_assoc: Genera un vector asociativo, ej:
$arr["algo"] = "uno";
$arr["algomas"] = "dos";
Donde $arr["algo"]= uno y $arr["algomas"] = dos.
mysql_fetch_array te genera ambos, pudiendo acceder mediante posición o indice.

Ahora bien, la diferencia esta en memoria. Si tenes una consulta gigante, el espacio en memoria que generara mysql_num_row será mucho menor a lo que generaría mysql_fetch_assoc, y ni hablar si usas mysql_fetch_array.
En si, si los campos que traes son pocos (digamos, dos, tres, ... no mas de cinco) usa mysql_fetch_row que es mas óptimo.
Si son mas es conveniente usar mysql_fetch_assoc así tendrás mas comodidad y será mas legible haciendo $rs["campo"] que $rs[X].

También vale decir que mysql_fetch_array dispone de un segundo parámetro opcional que es el tipo de vector a generar. O sea, se puede decir que mysql_fetch_array es un híbrido entre los otros dos, a no ser que se especifique lo contrario, ej:
while( $rs = mysql_fetch_array( $puntero, TIPO )...
TIPO Pude ser: MYSQL_ASSOC (Asolo asociativo), MYSQL_NUM, solo por posición, y el default que no es necesario MYSQL_BOTH.

No se si te mezcle mucho, o te ha ayudado...espero que la segunda ;)

Saludos
__________________
Mi punto de partida es Que Bueno Lo Nuevo