Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/01/2013, 14:54
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: No veo el problema

No, el error ya lo habia encontrado el OP. Estaba usando $cantidad tanto para controlar el bucle, como para guardar 1 campo del resultado.
Pero, si el OP quiere escribir código más "optimizado", primero, no cargues toda la consulta en memoria (aunque php lo hace), cuando se puede procesar secuencialmente sin problema.
Si la query da 60000 resultados, copiar esos 60000 resultados en un array, para luego procesarlos 1 a 1, es tirar la memoria.
Mejor usarlo con un iterador php (mysql_fetch_xx), o con uno que tú te hagas.

Y, después, tanto por velocidad, como por claridad de código:
Código PHP:
Ver original
  1. for ($compra=0; $compra <= $cantidad; $compra++) {          
  2.        $curCompra=$compras[$compra];
  3.         echo "Articulo ".$curCompra['claart'].
  4.                 "claemp  ".$curCompra['claemp'].
  5.                 "cantidad ".$curCompra['cantidad'].
  6.                 "fecha ".$curCompra["fecha"];
  7.      }

Si el procesamiento no requiere parámetros externos (todo lo que haces dentro del bucle depende sólo de los valores de dentro del array) es posible hacerlo con array_map.
Si hay parámetros externos, pero no son demasiados, puedes usar array_map con un closure.(Si son muchos, se pierde legibilidad)