Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2013, 13:26
Avatar de Killerx_8937
Killerx_8937
 
Fecha de Ingreso: noviembre-2006
Mensajes: 99
Antigüedad: 17 años, 5 meses
Puntos: 0
Correcion de valor

Estimados.

tengo un problema y no puedo vizualizar que esta mal, tengo una tabla en un db
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `Equip_CtrlEquipoValor` (
  2.   `CtrlEquipoValor_Id` int(11) NOT NULL auto_increment,
  3.   `CtrlEquipo_Id` int(255) NOT NULL,
  4.   `CtrlEquipoValor_Punto` double NOT NULL,
  5.   `CtrlEquipoValor_A` double NOT NULL,
  6.   `CtrlEquipoValor_B` double NOT NULL,
  7.   PRIMARY KEY  (`CtrlEquipoValor_Id`),
  8.   KEY `CtrlEquipo_Id` (`CtrlEquipo_Id`)
  9.  
  10. INSERT INTO `Equip_CtrlEquipoValor` (`CtrlEquipoValor_Id`, `CtrlEquipo_Id`, `CtrlEquipoValor_Punto`, `CtrlEquipoValor_A`, `CtrlEquipoValor_B`) VALUES
  11. (1, 236, 200, 0, 0),
  12. (2, 236, 1000, -0.001, 1),
  13. (3, 236, 2000, 0, -1),
  14. (4, 236, 5000, 0, -1),
  15. (5, 236, 10000, 0, -1),
  16. (6, 236, 20000, 0, -1),
  17. (7, 236, 30000, 0, -1);

tengo 2 funciones las cuales me permiten corregir un valor a partri de los valores guardados en la base de datos.

Código PHP:
Ver original
  1. function puntoMaxCal($Equipo)
  2. {
  3.     $Sql="SELECT *,MAX(CtrlEquipoValor_Punto)AS Max FROM Equip_CtrlEquipoValor
  4.         INNER JOIN Equip_CtrlEquipo USING(`CtrlEquipo_Id`)
  5.         INNER JOIN Equip_Ctrl ON Ctrl_Codigo = CtrlEquipo_Codigo
  6.         INNER JOIN Equip_Equipos ON Equipos_Codigo = Ctrl_Codigo
  7.         WHERE Equipos_Codigo='".$Equipo."'";
  8.     $Resultado=dbquery($Sql);
  9.     $Fila=dbarray($Resultado);
  10.     return $Fila['Max'];
  11.    
  12. }

esta em trae el punto maximo de calibracion del equipo ingresado en la db pa este caso 30000

y con esta otra funcion corrgo el valor
Código PHP:
Ver original
  1. function corrMasa($Balanza,$Masa)//corrige masa de acuardo a balanza entregada
  2. {
  3.     if($Masa < puntoMaxCal($Balanza) ||  $Masa == puntoMaxCal($Balanza))
  4.     {
  5.         $Sql="SELECT * FROM `Equip_CtrlEquipoValor`";
  6.         $Resultado=dbquery($Sql);
  7.         while($Fila=dbarray($Resultado))
  8.         {
  9.             if($Masa < $Fila['CtrlEquipoValor_Punto']  || $Masa == puntoMaxCal($Balanza))
  10.             {
  11.                 $Error = ($Masa * $Fila['CtrlEquipoValor_A'] + $Fila['CtrlEquipoValor_B']);
  12.                 $MCorr = $Masa- $Error;
  13.                 break;
  14.             }
  15.         }
  16.         return $MCorr;
  17.     }
  18.     else
  19.     {
  20.         $MCorr="fuera de rango";
  21.         return $MCorr;
  22.     }
  23. }

sin embargo cuando llamo a esta funcion
Código PHP:
Ver original
  1. corrMasa('S32',30000)
y le doy el parametro 30000 como masa me utiliza los parametros `CtrlEquipoValor_A` y `CtrlEquipoValor_B` del punto de 200 no el punto de 30000 para hacer la correccion del valor solo pasa cuando le pongo 30000 con cualquier valor que este entre 20 y 29999 funciona bien , me explique bien...?

como les digo no logro ver que esta mal