2011-11-14 14 views
0

私はテーブルの1列に値の合計を得るPHP関数を書こうとしています。私のSQLステートメントは正常に動作します。しかし、私は自分の関数を記述し、変数を自分のHTMLコードにエコーしようとすると、 '0'を返します。mysqlのPHP関数を書くときに、SELECT SUM()

ここ

は私の機能である:私のHTMLで

function get_asset_value($org_ID) { 
global $db; 
$query = "SELECT SUM(asset_value) FROM assets 
      WHERE org_ID = '$org_ID'"; 
$asset_sum = $db->query($query); 
$asset_sum = $asset_sum->fetch(); 
return $asset_sum; 

、私は次のようしている:

<?php echo $asset_sum; ?> 

私はこれが私の「フェッチ」の部分に関係しているかどうかわからないんだけど関数。私は実際にフェッチが何をしているのかわかりませんが、私は作業関数(和を返さないが、select文です)からこのコードをコピー/修正しようとしました。

ありがとうございました!

+0

あなたは多分、SQLインジェクションに大きく開いているんです準備された声明を使うことができますか – Molochdaa

答えて

0
SELECT SUM(asset_value) AS the_sum FROM assets WHERE ord_ID = '$ord_ID'; 

...

return $asset_sum['the_sum']; 

問題は、あなたではなくあなたが欲しいだけのフィールドよりも、全体のレコードを返すされている、です。

また、そのIDをクエリに挿入する方法で判断すると、私はあなたがSQLインジェクションにオープンしていると思われます。あなたは本当にlearn to do prepared queries with PDOです。ブラッドによって

SELECT SUM(asset_value) AS the_sum FROM assets WHERE ord_ID = '$ord_ID'; 
... 
return $asset_sum['the_sum'] 

に加えて

+0

ありがとう、Brad。それは完全に働いた。私は本当に助けに感謝します! – Progger

1

方が良い

$safer = mysql_real_escape_string($org_ID); 

が、その後、

SELECT SUM(asset_value) AS the_sum FROM assets WHERE ord_ID = '$safer'; 
... 
return $asset_sum['the_sum'] 
+0

ありがとう!それは完全に働いた! – Progger