2012-04-27 74 views
1

我有一个页面,当数据发布到它插入值到我的数据库。PHP减去2个变量值

我试着去获得所有从DB手前值的总和,然后插入值,然后把SUM从插入如果这是有道理的价值了吗?

$totalquery = mysql_query("SELECT SUM(bill) FROM `outgoings` WHERE outgoings.user_id = '$uid'") or die(mysql_error()); 
$totalresult = mysql_fetch_array($totalquery);   
$uid = $_SESSION['oauth_id']; 
$id = $_POST['col-id']; 
$sanitized_monthly_income = mysql_real_escape_string($_POST['monthly-income']); 
mysql_query("INSERT INTO income (id, user_id, monthly_income) VALUES ('$id', '$uid', '$sanitized_monthly_income') ON DUPLICATE KEY UPDATE monthly_income = VALUES(monthly_income)"); 
echo $sanitized_monthly_income - $totalresult["SUM(bill)"]; 

这是错误我收到虽然

注意:未定义的变量:在的uid上update_salary.php线18

+1

请停止与古'mysql_ *'函数编写新的代码。他们不再保持和社区已经开始了[弃用过程(http://news.php.net/php.internals/53799)。相反,您应该了解准备好的语句并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。如果你关心学习,[这里是一个很好的PDO相关教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 – 2012-04-27 20:50:40

+1

您的代码似乎无法控制SQL注入漏洞。 :-( – 2012-04-27 20:51:03

回答

4

您使用$uid分配前:

$totalquery = mysql_query("SELECT SUM(bill) FROM `outgoings` 
          WHERE outgoings.user_id = '$uid'") or die(mysql_error()); 
#              ^^^^ 
# then later ... 

$uid = $_SESSION['oauth_id']; 

你可能需要移动以上L分配您尝试访问该值的地方。

+0

Duhhh!谢谢@MarkByers – Liam 2012-04-27 20:48:22