PHP将每个特定MySQL列值的变量存储在变量中

时间:2017-10-23 11:46:22

标签: php mysql database

我正在尝试为我们的工厂(员工)创建一天封闭。

到目前为止我创造了什么:

  • 它显示数据库中所有记录的总数,其中startdate和status在SQL SELECT函数中给出。所以$ totalWorkedTime = 16.68。但这不是我想要的。我想为每个部门显示总价值。

    $datestring = '23-10-2017';
    $qClosure = 'SELECT * FROM timeRegistration WHERE startdate="'. $datestring .'" && status="3" ';
    $rClosure = mysqli_query($conn, $qClosure);
    
    $totalWorkedTime = 0;
    
    while($row = mysqli_fetch_assoc($rClosure)) {
    
    $totalWorkedTime += $row['worktime'];
    
    }
    echo $totalWorkedTime;
    

我的目标如下:

  • 为不同部门(1,2,3,4,5,6)存储工作小时总数的功能。在我的MySQL数据库中,我有一个名为:worktime的列。在本专栏中,我有不同的值,如:3.42,3.42,4.92,4.92(这些是小时)。所以我有4条记录。现在这些记录具有存储在列中的不同部门:department。

我希望我的函数为每个部门存储这些值。我该怎么办呢?一个例子是:

$ totalhoursDepartment5 = 6.84; $ totalhoursDepartment4 = 9.84;

如果有任何其他记录包含部门,该函数应该创建更多$ totalhoursDepartment:3或2(示例)。

MySQL DB

2 个答案:

答案 0 :(得分:1)

SQL sum()将为您执行此操作:

 SELECT SUM(worktime),department
 FROM Depts
 GROUP BY department;

部门应该成为部门表的关键。

答案 1 :(得分:0)

    $datestring = '23-10-2017';
    $qClosure = 'SELECT SUM(worktime) AS totalworktime
FROM timeRegistration
Where departement in (select departement
from timeRegistration
WHERE startdate="'. $datestring .'"
and status="3")';
    $rClosure = mysqli_query($conn, $qClosure);

使用'sum'和'in'

http://sql.sh/cours/where/in

http://sql.sh/fonctions/agregation/sum