PHP有没有办法在数据库中设一个计算的公式?

javasam 2006-06-12 09:48:39
如题:
本人想在数据库中写入一个计算公式,当传值过来的时候则读取数据的公式用来做计算等式,
跪求解决方案~~~~~~
...全文
185 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
javasam 2006-06-12
  • 打赏
  • 举报
回复
可以由表单传值,也可以读取数据库提示值,
我的方法是很简单,得到值后在PHP中用str_replace替换等式,
如:
$text="num1+num2*num3";
$text=str_replace("num1",1,$text);
$text=str_replace("num2",2,$text);
$text=str_replace("num3",3,$text);

最后写SQL语句
$sql="select $text as number"
得到最后结,总结:就是最生成一个SQL语名,让它在MYSQL下计算
「已注销」 2006-06-12
  • 打赏
  • 举报
回复
"本人想在数据库中写入一个计算公式,当传值过来的时候则读取数据的公式用来做计算等式,
跪求解决方案~~~~~~"

楼主,你传来了数据怎么处理阿?问题是知道了,但是没人知道你想怎么做啊。。。
传值?你怎么传阿?select?


iasky 2006-06-12
  • 打赏
  • 举报
回复
mark
javasam 2006-06-12
  • 打赏
  • 举报
回复
谢谢大家提供的方法,我想到了我的解决方法了,结分咯
javasam 2006-06-12
  • 打赏
  • 举报
回复
就是与xuzuning(唠叨)说的一样
aniude 2006-06-12
  • 打赏
  • 举报
回复
其实可以这样的,
select a,b,(a+b) as c from tb
xuzuning 2006-06-12
  • 打赏
  • 举报
回复
楼主的需求应该与存储过程是无关的,“当传值过来的时候则读取数据的公式用来做计算”
只是将表达式存入数据库,已备以后php程序使用

表达式 ($a+3)*5
入库时写做 "(\$a+3)*5"
读出后保存到 $expr
执行时
$a = 123;
$b = eval("return $expr;");
javasam 2006-06-12
  • 打赏
  • 举报
回复
这些计算公式有很多,不是唯一的.如
a 表 b表
a.id =10 b.content= num1+num2*num3
a.num1=1 b.aid=10
a.num2=2
a.num3=3

条件:a.id=b.aid
最后就是读取a表的记录出来,然后按了b表的公式(content)计算.
aniude 2006-06-12
  • 打赏
  • 举报
回复
2楼的方法可以试试,MYSQL里面好像没有函数的概念,那么就只能用存储过程了
ckc 2006-06-12
  • 打赏
  • 举报
回复
可以啊,直接保存公式在数据库中
参数可以用$a[0]这样的数组代替
使用的时候从数据库中取出公式,把参数代进去,得到一个字符串
从数据库中select 你的公式
这样就可以了
注意不同的数据库具体格式略有不同
javasam 2006-06-12
  • 打赏
  • 举报
回复
mrshelly(Shelly) :
可是计算公是写在数据库记录里的,怎么弄到存储过程去了?
mrshelly 2006-06-12
  • 打赏
  • 举报
回复
1 存储过程。
2 直接用计算式。 SELECT a,b, a*b as ab FROM table

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧