Foros del Web » Programando para Internet » PHP »

Formulas en PHP

Estas en el tema de Formulas en PHP en el foro de PHP en Foros del Web. Buenas Tardes Amigos soy nueva en el foro. Tengo una GRAN duda y quisiera me pudieran ayudar a solucionarla. Estoy haciendo un sistema de nomina. ...
  #1 (permalink)  
Antiguo 07/04/2010, 14:57
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Formulas en PHP

Buenas Tardes Amigos soy nueva en el foro.

Tengo una GRAN duda y quisiera me pudieran ayudar a solucionarla.

Estoy haciendo un sistema de nomina. El calculo del sueldo entre otros necesita de una formula que esta almacenada en mi BD (SQL Server) que pasa yo tengo almacenada la formula de esta manera, por ejemplo: ($SD/12)*($SLA+$RSPF*3) por decir algo, los valores de las variables los tengo tambien almacenados en la BD.

Como hago para evaluar desde PHP la formula. Que cabe decir que pueden estar formadas distintas y con distintos valores.

Espero me puedan ayudar.

Gracias de ante mano.
  #2 (permalink)  
Antiguo 07/04/2010, 14:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Formulas en PHP

Puedes usar eval().

Saludos.
  #3 (permalink)  
Antiguo 08/04/2010, 09:39
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: Formulas en PHP

Si eso lo se, el problema esta en que cuando obtengo los valores desde la BD correspondientes a las variables que conforman la formula por alguna razon o no los identifica o no se que pasa.
  #4 (permalink)  
Antiguo 08/04/2010, 09:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Formulas en PHP

Pues depende mucho como tengas tu código, más no puedo adivinar pero lo que quieres se solucina usando eval:
Código PHP:
Ver original
  1. $a = 1;
  2. $b = 2;
  3. $c = 0;
  4. eval('$c = $a + $b;');
  5. echo $c; // imprime 3
  #5 (permalink)  
Antiguo 08/04/2010, 11:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 121
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Formulas en PHP

Ok esa es una formula fija. pero suponte que como dijo maria jose la formula vine asi
$formula = $arreglo[$i]['FORMULA'];
e internamente la formula es la que ella te mostro (SD*12/SLA)*(RSPF*3)
que pasa eval lo que hace es buscar una variable que se llame SD donder la consiga busca el valor que tenga asignado y lo sustituye y asi con todas,
pero resulta que los nombres de las constantes estan almacenadas en variables como por ejemplo $var1 = 12; donde se supòne que a $var1 ya se le ha asignado el valor de la constante que en este caso es SD, pero cuando se hace el eval parece que no reconociera que var1 es SD en cambio si yo coloco $SD = 12 ahi si lo hace pero yo no puedo crear variables con los nombres de las constantes porque no las se
  #6 (permalink)  
Antiguo 08/04/2010, 12:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Formulas en PHP

Pues lo arreglas fácilmente usando un str_replace, para reemplazar las "constantes" de tu formula por valores conocidos, y posteriormente terminas haciendo un eval.

Saludos.

Etiquetas: formulas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:19.