这部分PHP和SQL对我来说是全新的,我需要使用数学来更新表。
我目前只有一张表avis_credits,只在这张表中有一行
当用户从qty_credits使用系统时,该表会扣除积分,但我希望能够为其帐户添加额外的积分,例如:
客户目前有10个学分,他购买了100个学分,所以系统必须拿到当前的学分并加上100学分,给我110个学分。我正在做这个当前手动添加我的一面,并用这个表达更新表。
"UPDATE avis_credits SET credits='$qty_credit'";
我想要的是系统查找当前的积分并将新积分添加到该行。
我试过这个
"UPDATE avis_credits SET credits='<?php echo qty_credit?> + $qty_credit'";
但它根本不起作用。是因为我试图在一个字符串中做太多功能吗?或者是因为数学方程式错误,因为我不知道如何写它?
答案 0 :(得分:2)
"UPDATE avis_credits SET credits=credits + $qty_credit";
答案 1 :(得分:2)
在您的第一个查询中,您没有进行任何数学运算,只是将其更改为变量的值:
"UPDATE avis_credits SET credits='$qty_credit'";
因此,学分成为$qty_credit
的价值。
在你的第二个查询<?php echo qty_credit?>
这是错误的,你试图在已经打开的那个上打开另一个php标签而你没有在变量上使用$
然后你尝试对变量求和,这样就会给你一个错误。
"UPDATE avis_credits SET credits='<?php echo qty_credit?> + $qty_credit'";
这将清理您的输入,并通过添加变量$qty_credit
的值来总结点数的值:
$sql = sprintf("UPDATE avis_credits SET credits = credits + '%s'",
mysql_real_escape_string($qty_credit));
作为附注,您可能希望指定要存入额外信用的帐户的ID,否则上述规则将增加所有行的信用。
$sql = sprintf("UPDATE avis_credits SET credits = credits + '%s' WHERE id = '%s'",
mysql_real_escape_string($qty_credit),
mysql_real_escape_string($id));