Mostrando entradas con la etiqueta mysql. Mostrar todas las entradas
Mostrando entradas con la etiqueta mysql. Mostrar todas las entradas

jueves, 20 de octubre de 2011

Sumar campos en Cakephp y retornar la suma

Lo primero que se me ocurrió para resolver este problema era hacer una consulta find('list), y luego recorrer el arreglo sumando en una variable acumuladora y devolver el resultado.
Esto es sencillo pero resulta poco elegante.

Una mejor solución es incluir en la búsqueda una función de MySQL  y tumar los resultados directamente desde la búsqueda.
Y ya que únicamente necesito un valor, en lugar de find, uso la función field que devuelve un único valor en lugar de un array.

para resumir la cosa quedaría así.


$params = array('equipo_id'=>$equipo_id, 'numero_equipo'=>$numero, 'obra_id'=>$obra_id, 'fecha >'=>$fecha_ini, 'fecha <'=>$fecha_fin);
        $datos = $this->field('SUM(total)', $params  );
return $datos;
Aquí el truco es poner SUM('campo') ya que si la consulta, según las condiciones retorna varios campos, se suman y se devuelve únicamente el resultado.
Si se pone como parámetro de field, simplemente el nombre del campo, retornará la primera coincidencia si alguna.

sábado, 2 de abril de 2011

De las primeras cosas a revisar cunado fala un servicio en linux es el espacio en disco.

Ya varias veces me ha ocurrido que cuando servicios  como el squid, apache o mySQL fallan, se trata de poco espacio en disco que impide que se modifique o creen archivos temporales que se requieren para el funcionamiento.

Y aunque uno supondria que al tratar de ejecutar la aplicación esta debería avisar con algo como: "Error tal y tal, me quedé sin espacio en disco, Pilas! muchas veces simplemente sale un "Error".

Verificar lo es fácil en sistemas Linux. (y en Windows si que más).

# df -h

Donde df viene de disk-free y el -h viene de "human" es decir que los tamaños puedan ser leídos por humano, osea en Kb, Mb y Gb según el caso.