2011-04-27 60 views
25

我在表中添加一列並返回總和。我有一個循環,但它不工作。在PHP中獲取MySQL列的總和

while ($row = mysql_fetch_assoc($result)){ 
    $sum += $row['Value']; 
} 

echo $sum; 
+0

您應該將其替換爲執行總和的SQL查詢,或者您應該在循環前初始化'$ sum = 0'。我建議使用sum()字段進行SQL查詢。 – fbstj 2011-04-27 18:08:15

+1

這裏沒有什麼錯,除了$ sum之前可以有一些價值循環,你最喜歡的是什麼? – piotrm 2011-04-27 18:08:32

+1

你必須聲明$ sum變量高於WHILE循環到'0' – SagarPPanchal 2013-06-06 05:00:20

回答

83

您可以完全處理它在MySQL查詢:

SELECT SUM(column_name) FROM table_name; 

在PHP代碼,試試這個:

$result = mysql_query('SELECT SUM(value) AS value_sum FROM codes'); 
$row = mysql_fetch_assoc($result); 
$sum = $row['value_sum']; 

使用PDO(mysql_query折舊)

$stmt = $handler->prepare("SELECT SUM(value) AS value_sum FROM codes"); 
$stmt->execute(); 

$row = $handler->fetchAll(PDO::FETCH_OBJ); 
$sum = $row->value_sum; 
+0

像這樣'$ sum = mysql_query(「SELECT SUM(Value)FROM Codes」);'用這個我得到'資源id#10',但不是所有值的總和。 – jack 2011-04-27 18:47:02

+4

嘗試'$ result = mysql_query('SELECT SUM(value)AS value_sum FROM codes'); $ row = mysql_fetch_assoc($ result); $ sum = $ row ['value_sum'];'。 – Flinsch 2011-04-27 19:03:12

+0

什麼是value和value_sum? – 2016-07-28 06:56:24

2

$row['Value']可能是一個字符串。嘗試使用 intval($row['Value'])

此外,請確保在循環之前設置了$sum = 0

或者,更好的是,將SUM(Value) AS Val_Sum添加到您的SQL查詢中。

1
$sql = "SELECT SUM(Value) FROM Codes"; 

$result = mysql_query($query); 

while($row = mysql_fetch_array($result)){ 

    sum = $row['SUM(price)']; 

} 

echo sum; 
8
$query = "SELECT * FROM tableName"; 
$query_run = mysql_query($query); 

$qty= 0; 
while ($num = mysql_fetch_assoc ($query_run)) { 
    $qty += $num['ColumnName']; 
} 
echo $qty; 
1

我已經取代你的代碼,它工作得很好

$sum=0; 
while ($row = mysql_fetch_assoc($result)){ 
    $value = $row['Value']; 

    $sum += $value; 
} 

echo $sum; 
2
$result=mysql_query("SELECT SUM(column) AS total_value FROM table name WHERE column='value'"); 
$result=mysql_result($result,0,0); 
2

試試這個:

$sql = mysql_query("SELECT SUM(Value) as total FROM Codes"); 
$row = mysql_fetch_array($sql); 
$sum = $row['total']; 
0

獲得一筆特定的行值使用PHP MYSQL

"SELECT SUM(filed_name) from table_name" 
+1

你的意思是使用MySQL? – TGrif 2017-09-06 14:50:17

+0

我們從MYSQL得到結果時得到的結果,然後我們爲什麼試圖讓一些循環獲得結果.. – senthilkumar 2017-09-08 09:53:32

0

MySQL 5.6(LAMP)。 column_value是您想要添加的列。 table_name是表格。

方法#1

$qry = "SELECT column_value AS count 
     FROM table_name "; 

$res = $db->query($qry); 

$total = 0; 
while ($rec = $db->fetchAssoc($res)) { 
    $total += $rec['count']; 
} 
echo "Total: " . $total . "\n"; 

方法#2

$qry = "SELECT SUM(column_value) AS count 
     FROM table_name "; 

$res = $db->query($qry); 

$total = 0; 
$rec = $db->fetchAssoc($res); 
$total = $rec['count']; 

echo "Total: " . $total . "\n"; 

方法#3 -SQLi

$qry = "SELECT SUM(column_value) AS count 
     FROM table_name "; 

$res = $conn->query($sql); 

$total = 0; 
$rec = row = $res->fetch_assoc(); 
$total = $rec['count']; 

echo "Total: " . $total . "\n"; 

方法#4:折舊(不使用)

$res = mysql_query('SELECT SUM(column_value) AS count FROM table_name'); 
$row = mysql_fetch_assoc($res); 
$sum = $row['count'];