Ir al contenido principal

PHP - Ordenar una arreglo por nombre de campo

http://www.paginasprodigy.com/adan_esime/progs/PHP-ordenarArray.zipTenemos una tabla con las ventas por articulo en cada sucursal


Necesidad:
Se necesita mostrar en pantalla las ventas por tienda ordenanos de mayor a menor
Se debe de mostrar la posición de venta por tienda, es decir enumerarlas, 1 para la mejor venta, N para la venta mas baja.


Solución:
Una solución (no recomendada) es hacer una consulta por tienda solicitando las ventas en orden descendente. Esto se complica cuando en lugar de 3 tiendas tenemos 20.
Se tendrían que hacer 20 consultas.

Según mi experiencia es preferible, generar una consulta única y trabajar con el resultado en el PHP.



CÓDIGO:


//Esta Funcion ordena un array multidimensional por un campo determinado
function topVentas(array $array, $key, $tda="GRAL",$asc = false) {
$tda = ($tda=="GRAL")?"GRAL":"TDA$tda";

$result = array();
$values = array();

foreach ($array as $id => $value) {
$values[$id] = isset($value[$key]) ? $value[$key] : '';
}// end of foreach

if ($asc) {asort($values);}
else {arsort($values);}

//Obtiene Numero de Posicion y Acumula la Venta Total
$i=1;
foreach ($values as $key => $value) {
$result[$key] = $array[$key];
$result[$key]["pos$tda"] = $i;
$i++;
}// end of foreach
return $result;
}//end of topVentas

//Realiza Consulta
$queryVtas="select articulo, vta1, vta2, vta3, totalVtas from tabla_ventas"
$result=mssql_query($queryVtas) or die ("ERROR...");

while ($row =mssql_fetch_array($result)){
      $salida[]=$row;
}

//Ordenamos el arreglo por cada tienda y agrega columna con la posicion 
$salida = topVentas( $salida, "vta1", "1") 
$salida = topVentas( $salida, "vta2", "2") 
$salida = topVentas( $salida, "vta3", "3") 
$salida = topVentas( $salida, "totalVtas", "GRAL") 
echo "
";print_r($salida);echo "
"
?>

Comentarios

Entradas más populares de este blog

USA tu CELULAR como WEBCAM en el MSN

Este tutorial lo saque de CLUB MOTOROLA ARGENTINA. Es muy bueno, para los que no tenemos una webcam. Ademas de que le podemos sacar mas provecho a nuestor celular. Mi telefono es un C650, y funciono de maravilla. *********************** (Este tuto sirve solo para los motorola VXXX y algunos CXXX) 1º Bajan estos dos programas. Soft Cam junto con su Crack Motocam 2º Abren el motocam y le dan click a lo que esta en el cuadro rojo. 3º ponen todas esas configuraciones como indican las imagenes. 4º Le dan click a Ok 5º Instalan el soft cam y el crack 6º Mueven la palanquita que dice Stored a Live y la de Still a move 7º Vuelven al Motocam y le dan click a WebCam - Start 8º Ubican el cuadro dorado del SoftCam sobre lo q ve la camara. Y ya tienen su webcam en el msn!! Gracias capocha por la GRAN ayuda! Esto lo probe en un v3black; y un v635; anduvo en los dos. Hagan sus pruebas ustedes mismos. Cuenten como les fue y con q cel lo hicieron. No esperen q ande como cuando ponen el visor para s...

Cambiar de Sitio la Barra de Tareas de WINDOWS

La barra de tareas de Windows es aquella que se nos muestra en la parte inferior de la pantalla y donde se encuentra el botón de inicio. Hay sistemas operativos como el Mac OS en la que la barra de tareas se encuentra en la parte superior de la pantalla. Con Windows no es muy difícil mover esta barra. Antes de nada tenemos que comprobar que no está bloqueada, lo que nos impediría moverla. Esto podemos verlo haciendo un click con el botón derecho del ratón sobre esta barra y comprobando en el menú contextual correspondiente si la opción "bloquear la barra de tareas" está activada. Si es así, deberemos desactivarla. Una vez comprobado que no tenemos la barra de tareas bloqueada, solamente tenemos que hacer un click con el botón izquierdo y, sin soltar dicho botón, arrastrar la barra hacia los laterales de la pantalla o a la parte superior.

¿Por qué me gusta programar?

El desarrollo de software (al igual que la música, la escultura o la pintura) es una actividad creativa y, hasta si se quiere, artística. Cuando un músico escucha una melodía que acaba de componer o cuando un escultor retoca el último detalle de su obra maestra, está ante un logro personal, pero que fue hecho pensando en los demás. Está ante el fruto de su trabajo, que tuvo que realizar para pasar de una idea o modelo que estaba solo en su imaginación, a algo perceptible por los otros. Y ese logro causa una gran satisfacción. El desarrollo de software (al igual que la música, la escultura o la pintura) es una actividad creativa y, hasta si se quiere, artística. Es una actividad en la que una persona (el programador) debe plasmar una idea en un programa que alguien usará luego. Y es muy probable que esa idea sea algo totalmente novedoso, algo que nadie antes ha visto. Y ver esa idea traducida en software produce una sensación que únicamente un programador puede entender...