Foros del Web » Programando para Internet » PHP »

$argv

Estas en el tema de $argv en el foro de PHP en Foros del Web. hola tengo en una tabla conceptos y sus respectivas formulas que necesito resolver yo saco el concepto y la formula (for_id tiene la formula, por ...
  #1 (permalink)  
Antiguo 25/08/2006, 14:17
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 12 años, 6 meses
Puntos: 1
$argv

hola tengo en una tabla conceptos y sus respectivas formulas que necesito resolver

yo saco el concepto y la formula (for_id tiene la formula, por ejemplo 48*4)

$formula=$filacon["for_id"];

$argv=($formula);
echo " resuelto $argv";

pero lo que me devuelve es :resuelto 48*4 en lugar del resultado...como puedo hacer para que me de el resultado directamente?

Espero ayuda!
Gracias!
  #2 (permalink)  
Antiguo 25/08/2006, 16:08
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 14 años
Puntos: 4
Probablemente sea porque estas declarando la variable como cadena. Para ser más claro observa como se declaran estas variables y como se muestran en pantalla:

<?php
$for_id = 48 * 4;
$for_id2 = "48 * 4";
$for_id3 = '48 * 4';

echo " resuelto $for_id";
echo "<br/> resuelto $for_id2";
echo "<br/> resuelto $for_id3";
?>

Espero te haya servido de algo.
  #3 (permalink)  
Antiguo 25/08/2006, 16:57
Avatar de Belero  
Fecha de Ingreso: agosto-2006
Mensajes: 98
Antigüedad: 11 años, 3 meses
Puntos: 0
Puedes mirar este capítulo
  #4 (permalink)  
Antiguo 28/08/2006, 08:48
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 12 años, 6 meses
Puntos: 1
ERIKFRANCISCO: hola! te agradesco la aclaracion, pero mi problema es que yo saco la formula desde una base de datos, por eso pongo asi:

$resucon=mysql_query($sqlcon,$dbi);
$filacon=mysql_fetch_array($resucon);
$formula=$filacon["for_id"];

$argv=$formula;
echo " resuelto $argv";

y me devuelve :

resuelvo 48*3 (que es lo que contiene el campo de la base de datos)

Si yo al campo lo pongo como numerico, no me permite ingresar los signos * ni / , solamente numeros por lo cual no puedo guardar la formular a resolver.

Tenes idea de Como lo puedo solucionar? ojala que si! gracias!
  #5 (permalink)  
Antiguo 28/08/2006, 08:56
Avatar de Belero  
Fecha de Ingreso: agosto-2006
Mensajes: 98
Antigüedad: 11 años, 3 meses
Puntos: 0
Puedes probar con eval
  #6 (permalink)  
Antiguo 28/08/2006, 09:00
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años
Puntos: 1
haz un explode por espacio en blanco para separa el "48" el "*" y el "3"

$operacion = explode (" ",$formula);

en $operacion[1] tendras la operacion que debes hacer.. y con eso haces un switch

switch ($operacion[1])
{
case "*": $resultado= $operacion[0] * $operacion[2];
break;
case "+": $resultado= $operacion[0] + $operacion[2];
break;
case "-": $resultado= $operacion[0] - $operacion[2];
break;
}

no lo he probado.. pruebalo y me comentas... es solo una idea.. pero puede que funcione..
__________________
ALOZORRO v5.0 (ahora en .es)
  #7 (permalink)  
Antiguo 28/08/2006, 09:26
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años
Puntos: 1
ah... si no pasa directamente los strings a entero prueba mirandote esta funcion.. que puede que te sirva:

http://es.php.net/manual/es/function.sprintf.php
__________________
ALOZORRO v5.0 (ahora en .es)
  #8 (permalink)  
Antiguo 28/08/2006, 09:31
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 12 años, 6 meses
Puntos: 1
BELERO! probe con eval, puse asi:

$resucon=mysql_query($sqlcon,$dbi);
$filacon=mysql_fetch_array($resucon);
$formula=$filacon["for_id"];

$argv=$formula;

echo $argv. "\n";
eval("\$argv = \"$argv\";");
echo $argv. "\n";

pero sigo sin conseguir que me resuelva la formula...estoy cometiendo algun error?
  #9 (permalink)  
Antiguo 28/08/2006, 09:50
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 12 años, 6 meses
Puntos: 1
AZRAEL666:

estoy probando lo que me pasaste, tengo una duda
como le asigno a operacion[1] la parte del signo? y a operacion[2] el segundo termino de la operacion?

gracias!!
  #10 (permalink)  
Antiguo 28/08/2006, 09:57
Avatar de Belero  
Fecha de Ingreso: agosto-2006
Mensajes: 98
Antigüedad: 11 años, 3 meses
Puntos: 0
Código PHP:
$formula "48*2";
eval(
'$resultado = ' $formula ';');

echo 
$resultado
  #11 (permalink)  
Antiguo 28/08/2006, 10:00
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años
Puntos: 1
Cita:
Iniciado por laulaurys Ver Mensaje
AZRAEL666:

estoy probando lo que me pasaste, tengo una duda
como le asigno a operacion[1] la parte del signo? y a operacion[2] el segundo termino de la operacion?

gracias!!
eso lo hace directamente el explode(), por esa parte no tienes ningun problema, en cuanto se ejecuta ya tienes en operacion[1] , operacion[2] y operacion[3] todos los datos

el explode te divide la cadena por un caracter dado, en este caso un espacio en blanco, y lo mete en un array de forma ordenada.
__________________
ALOZORRO v5.0 (ahora en .es)
  #12 (permalink)  
Antiguo 28/08/2006, 10:01
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 12 años, 6 meses
Puntos: 1
Ya esta funcionando perfecto!!
Muchas gracias!!
  #13 (permalink)  
Antiguo 28/08/2006, 10:05
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años
Puntos: 1
lo de belero o lo mio? es que no probé ninguna de las dos propuestas (ni la que hice yo jajaja)
__________________
ALOZORRO v5.0 (ahora en .es)
  #14 (permalink)  
Antiguo 28/08/2006, 10:11
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 12 años, 6 meses
Puntos: 1
la tuya Azrael666!! muchas graciasssssssssss!
  #15 (permalink)  
Antiguo 28/08/2006, 10:17
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años
Puntos: 1
ah ..vale jaja. de nada..

entonces el eval no tira? acabo de mirar la pagina que puso él pero no me aclara mucho...
__________________
ALOZORRO v5.0 (ahora en .es)
  #16 (permalink)  
Antiguo 28/08/2006, 10:24
Avatar de Belero  
Fecha de Ingreso: agosto-2006
Mensajes: 98
Antigüedad: 11 años, 3 meses
Puntos: 0


La de eval también va, es para ejecutar código que está en una cadena
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 03:23.