Foros del Web » Programando para Internet » PHP »

Guardar operacion matemática en Base de datos

Estas en el tema de Guardar operacion matemática en Base de datos en el foro de PHP en Foros del Web. Hola a todos, soy nuevo en esto y espero que igual que me puedan ayudar tambien les pueda servir de ayuda en algún momento. mi ...
  #1 (permalink)  
Antiguo 16/01/2011, 08:25
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 13 años, 10 meses
Puntos: 0
Guardar operacion matemática en Base de datos

Hola a todos, soy nuevo en esto y espero que igual que me puedan ayudar tambien les pueda servir de ayuda en algún momento.

mi problema es el siguiente, quiero guardar una operación matemática en una base de datos mysql para luego ejecutarla en php. El problema que que php lo reconoce como un string y no ejecuta la operación.

Recibo de la base de datos algo así:
$operacion = 'alto - 35';

Con str_replace cambio la palabra alto por un valor, por ejemplo 100 y me queda algo así:

$operacion = '100 - 35';

Lo que quiero es ejecutar esa resta.

Gracias de antemano.
  #2 (permalink)  
Antiguo 16/01/2011, 09:15
 
Fecha de Ingreso: enero-2011
Ubicación: Caracas
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Guardar operacion matemática en Base de datos

Buenos días silencio69

en primer lugar debes entender que php te lo reconoce como un string, porque realmente lo que estás almacenando en tu BD es un string. te recomiendo que leas el manual de operaciones matemáticas de php y que guardes en tu base de datos por lo menos tres campos p.e.
variable (alto, ancho, largo, volumen, etc)
operador (-,+,*,/, etc)
elemento (35, 50, 40, 8.9, etc)
una vez esto podrías usar un switch case para determinar según el valor obtenido en el campo operador cual operación deseas hacer cambiando tu variable por un valor operable
  #3 (permalink)  
Antiguo 16/01/2011, 09:22
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Guardar operacion matemática en Base de datos

Gracias paulo jag por la respuesta.

Eso ya lo pensé pero el problema es que eso es un ejemplo de operación sencilla, puede que tenga que almacenar operaciones mas complejas.

La cuestion es si alguien conociera alguna función que haga que ese String que es la operacion se pueda convertir a integer.

Yo he probado con la función settype y nada.

Si alguien le ha ocurrido algo así.

Gracias
  #4 (permalink)  
Antiguo 16/01/2011, 09:33
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Guardar operacion matemática en Base de datos

Talvés eval te pueda servir, aunque deberías tener cuidado con su uso, si googleas vas a encontrar mucha info sobre los peligros de eval.

Saludos.
  #5 (permalink)  
Antiguo 16/01/2011, 09:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Guardar operacion matemática en Base de datos

además, pienso que no necesitas en tu BD varias columnas como te han dicho... con que almacenes la exporesión en un VARCHAR y luego la evalúes basta!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 16/01/2011, 09:59
 
Fecha de Ingreso: enero-2011
Ubicación: Caracas
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Guardar operacion matemática en Base de datos

Cita:
Iniciado por silencio69 Ver Mensaje
Gracias paulo jag por la respuesta.

Eso ya lo pensé pero el problema es que eso es un ejemplo de operación sencilla, puede que tenga que almacenar operaciones mas complejas.

La cuestion es si alguien conociera alguna función que haga que ese String que es la operacion se pueda convertir a integer.

Yo he probado con la función settype y nada.

Si alguien le ha ocurrido algo así.

Gracias
Bueno, tu planteamiento sobre el nivel de complejidad de tus operaciones matemáticas, pertenece a lo que en mi respuesta puse como "etc" y si tengo conocimiento de que tan compleja se puede tornar una ecuación matemática (gracias a que estudié matemáticas avanzadas de cuarto nivel en la universidad).
En este punto te sugiero que hagas un alto en el nivel de especialización de tu aplicación, ya que puedes tener funciones exponenciales, trigonométricas, logarítmicas, polinomicas, Integrales, Diferenciales, vectoriales, complejas, reales, ETC... y no existe una función que pueda interpretar un string como una operación matemática, ya que es como una inteligencia artificial y para eso estás tu como programador, para delimitar el problema y crear el algoritmo necesario que lleve a la solución de la operación matemática
p.e.
1.- identificar la operación: reconocer el carácter que estás usando en tu string para realizar la operación matemática.
2.- identificar la cantidad de números que participan y la manera en que se operan dichos elementos.
3.- identificar la orden de operación de los elementos.
4.- Realizar la operación matemática en cuestión.

Te sugiero uses orientación a objetos para esto, creando una rutina para hacer las operaciones más básicas y luego poder usarlas de maneras anidadas en las operaciones más complejas. Luego definas el nivel de complejidad en tu base de datos para poder ponerle un cierto limite a tu desarrollo, veas la manera en que definirán cada uno de los elementos y la forma en que tu separarás dichos elementos, le asignaras su orden de operación y lo operes según ese orden de lo más simple a lo más complejo.
  #7 (permalink)  
Antiguo 16/01/2011, 11:44
 
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 8
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Guardar operacion matemática en Base de datos

Como han comentado, eval puede ser tu función:


Código PHP:

$alto 
10;
$formula '$resultado = $alto - 35;';

eval(
$formula);

echo 
$resultado
Pero has de tener especial cuidado de lo que evalúas con eval, ya que ejecuta cualquer código php que le pases.
  #8 (permalink)  
Antiguo 16/01/2011, 13:05
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Guardar operacion matemática en Base de datos

Mil gracias a todos.

No habia caido en la funcion eval.

me habeis ganado....je je je.

Un saludo a todos.
  #9 (permalink)  
Antiguo 17/01/2011, 00:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Tema movido desde Frameworks y PHP orientado a objetos a PHP

Etiquetas: operacion
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:35.