簡體   English   中英

遍歷SQL並在PHP中計算總和

[英]Loop through SQL and calculate sum in PHP

我的代碼有問題。 我有2張桌子。 第一個employee_id:

|員工編號|

1個

2

3

第二個表稱為employee_times:

| Employee_id | Hours_dev | hours_pm |

| 1 | 2 | 3 |

| 1 | 3 | 4 |

| 2 | 3 | 3 |

我要做的是計算每個員工的總工作時間(hours_dev + hours_pm)。 例如,employee_id 1工作了12個小時

到目前為止,我已經嘗試從第一個表中檢索所有的employee_id,並使用for循環在SQL語句(請參見下面的代碼)中遍歷employee_times。 但是,該代碼不起作用,因為它同時為employee_id和total_hours輸出0。

我在本地服務器上使用MYSQL。

$ sql =“選擇雇員的employee_id”; $ result = mysql_query($ sql); while($ row = mysql_fetch_array){$ employee_id = $ row ['employee_id']; }

              $employee_id_length = sizeof($employee_id);

              for($i = 0; $i < $employee_id_length; $i++)
              {
                 $sql4 = "SELECT employee_id, hours_dev, hours_pm FROM employee_times WHERE employee_id= '$employee_id[$i]'";
                        $result =  mysql_query($sql4);
                          while($info = mysql_fetch_array($result));
                        {
                            $employee_id = $info['employee_id'];
                            $hours_dev=$info['hours_dev'];
                            $hours_pm=$info['hours_pm'];
                            $total_hours = ($total_hours + $hours_dev + $hours_pm );

                        }

                        //print "$employee_id worked for $total_hours";
              }

任何幫助深表感謝。

你可以直接得到總和

 select employee_id, sum(hours_dev)+ sum(hours_pm) as total 
from employee_times WHERE employee_id= '1'
group by employee_id

參考這個小提琴演示

這應該獲得您需要的數據

SELECT
  hours_dev,
  hours_pm,
  sum(hours_dev) + sum(hours_pm) as total_hours
FROM
  employee_times
WHERE
  employee_id = 123
GROUP BY
  employee_id

這個SQL查詢應該比腳本更快地提取信息。

SELECT Employee_id, SUM(Hours_dev), SUM(Hours_pm), SUM(Hours_dev + Hours_pm) 
FROM employee_times 
GROUP BY Employee_id

暫無
暫無

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

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