Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/03/2012, 09:37
Avatar de chclaudio
chclaudio
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Respuesta: php operaciones matematicas con consultas de mysql

Cita:
Iniciado por dotzeck Ver Mensaje
Antes de nada, no se puede hacer una consulta solo de 2 cosas (o sea, para eso está el limit), para hacer lo que dices hay operadores matemáticos en mysql ([url]http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html[/url]), aunque creo que lo que quieres no puedes hacerlo con la consulta como la tienes planteada ahora (has de usar algún GROUP BY y tal), suerte! (Si lo vas a hacer desde PHP o así lo tienes más fácil, comparas las 2 fechas dentro del array y una simple operación!)
------


Asi es amigo de hecho para limitar el resultado utilizo el LIMIT, y hasta el momento lo utilice solamente por que como he dicho aun no logro que me muestre los los dos registros de fechas mas recientes de cada impresora.

Ahora en cuanto a los operadores matemáticos de mysql en este momento no me ayudan.

en cuanto al GROUP BY de igual manera no me ayuda mucho ya que en este caso el la función del GROUP BY hacer un grupo por cada categoría diferente.

Esto que comentas de hacerlo en PHP de hecho eso es lo quiero hacerlo desde PHP "comparas las 2 fechas dentro del array y una simple operación!" como comparo las dos fechas dentro del array?

Ya que lo que según yo hace el array es obtener todos los valores de la consulta de la siguiente manera


<?php
include ("./conectadb.php");
echo "</br></br>";

$registros=mysql_query("SELECT htsimpresoras_byn.idimpresoras, htsimpresoras_byn.cantidad, htsimpresoras_byn.fecha_corte
FROM htsimpresoras_byn
WHERE idimpresoras = 1
ORDER BY cantidad DESC LIMIT 2;",$conexion) or
die("Problemas en el select:".mysql_error());
while ($reg=mysql_fetch_array($registros))
{
echo "idimpresoras:".$reg['0']."</br>";
echo "Cantidad:".$reg['1']."</br></br>";
echo "Cantidad:".$reg['2']."</br></br>";
}
mysql_close($conexion);
?>

resultado

idimpresoras:1
Cantidad:84772
Cantidad:2012-02-22

idimpresoras:1
Cantidad:64540
Cantidad:2012-02-22


El array dentro de los indices contiene el resultado con todos los registros de cada fila y así sucesivamente es decir con la fila dos igual hace referencia al indice 0,1,2. etc.

¿Como puedo restar la cantidad con fecha mas antigua a la cantidad con fecha mas reciente.?

Nota: la cantidad mas antigua en el ejemplo de la consulta se encuentra en el indice 2
y la cantidad mas reciente también se encuentra en el indice 2.


Saludos y gracias por el apoyo.