2011-11-14 58 views
0

我正在嘗試編寫一個PHP函數,它可以獲取表的1列中值的總和。我的SQL語句工作得很好。但是,當我編寫函數並嘗試將該變量回顯到我的HTML代碼中時,它將返回'0'。試圖爲mysql編寫一個PHP函數SELECT SUM()

這裏是我的功能:

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; 

在我的HTML,我有以下幾點:

<?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

+0

謝謝,布拉德。這完全奏效。我非常感謝幫助! – Progger

1

除了

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

布拉德,

您做的更好

$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