簡體   English   中英

MySQL SUM()所有ID(User)列的值和echo總值

[英]MySQL SUM() all the values of a Column for an ID(User) & echo total

成功連接到我的數據庫。 我有一張桌子,

stid |       date          | bf | ln | dn | meal_total
------------------------------------------------------
01   | 2015-11-27 13:12:01 | 1  | 2  | 3  |    6
01   | 2015-11-27 11:12:01 | 0  | 3  | 2  |    5
02   | 2015-11-27 12:12:01 | 1  | 1  | 1  |    3
03   | 2015-11-27 11:12:01 | 1  | 1  | 1  |    3

我只需要echoSUM中的所有值meal_total記錄在列current monthstid一樣,

Total Meal for `stid` in current month : 11.

我正在嘗試這樣的代碼,

 $sql = "select sum(meal_total) 
         from meal 
         where stid='$_SESSION[stid]'  
           AND date >= DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE())+1 DAY) ";

我試圖在類似html的表格中顯示結果,

<? php 
echo sum(meal_total); 
?>

主席先生,現在請幫助我解決。 提前致謝。

[我已盡力澄清問題。]

由於您沒有提供任何有效的PHP代碼,因此我只能猜測您不知道如何從結果集中訪問SUM字段。

當您SELECT SUM(meal_total)您應該為該字段SELECT SUM(meal_total)別名,以便像您的SELECT SUM(meal_total) AS meal_sum一樣從您的PHP結果數組中訪問它,並且可以echo $resultArray['meal_sum']來獲取有問題的值。

您需要在查詢中使用Group by語句: http : //dev.mysql.com/doc/refman/5.7/en/group-by-functions.html

如果命名結果,則可以從結果中輕松一點。 我建議您使用DATE_FORMAT ,它使您可以輕松比較部分日期。

$sql = "select sum(meal_total) AS meals 
        from meal 
        where stid='$_SESSION[stid]' 
          AND DATE_FORMAT( `date`, '%Y-%m' ) = DATE_FORMAT( NOW(), '%Y-%m' )";

# get result from sql
...
#

echo $result['meals'];

題外話:即使我是“先生”,也請注意,有很多(偉大的)女程序員。

嘗試

select
  m.stdid,
  sum(m.meal_total) as month_meals
from 
  meal as m
where 
   year(m.date)= year(month(CURRENT_DATE()) 
AND 
   month(m.date) = month(month(CURRENT_DATE())
group by m.stdid 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM