php
2012-04-27 7 views 1 likes 
1

私は、データが投稿されたときにその値を自分のDBに挿入するページを持っています。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)"]; 

これは私が

お知らせかかわらず、受信エラーです:未定義の変数:行にupdate_salary.phpでuidの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)。 –

+1

あなたのコードはcontian SQLインジェクションの脆弱性のようです。 :-( –

答えて

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!thanks @MarkByers – Liam

関連する問題