- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 foreach 循环,它已经使用函数中的数据库对象样式查询从 MySQL 数据库表中提取所有行。该函数正在抓取所有字段并将其设置在一个数组中,例如 foreach ($blahs as $blah => $blah_data)现在,我可以使用出现的每一行的字段填充页面。所以这是有效的。
但是,我还需要更进一步,现在根据每次出现的关系 ID(例如用户 ID)和日期范围获取这些行,并据此计算出一些特定字段(例如 hours_worked)的总和。我正在考虑在该 foreach 中运行另一个 foreach 运行一个查询,将日期范围变量和 user_id 传递给不同的函数。
现在发生的情况是,它只是提取该行的第一次出现及其 hours_worked 字段,并将其输出为总计。如何让 php 根据 user_id 循环访问单个用户的行,并汇总要输出的特定字段?
例如 user_id 1 有 4 行数据,每个行数组的值为 1,4,9,2(每行以小时为单位) user_id 2 有 8 行数据,每个行数组的值为 4,2, 4,4,1,1,4,8。而不仅仅是显示用户 1 的“1”。或用户 2 的“4”。我需要用户 1 的 hours_worked 行总数为 16,用户 2 的 hours_worked 行总数为 28。
如何在已经运行的 foreach 循环中处理此问题以获得此数据?
还是我的做法全错了?
我确实忘记提及输出正在被格式化为数据网格以打印出月度报告。但其中大约 80% 是来自比 hell 更糟糕的地方的遗留暴行代码。因此,因为他们不想改变这一点,所以我必须解决所有这些问题,并且我需要永远详细说明这里的场景。
无论如何,这里是一些代码的片段,它给出了我想要做的事情的总体思路。主要需要注意的是,传入的数据已经被分解并分配给与传入字段同名的变量。$user_id 是“user_id”,$created_date 是“created_date”
我遇到了两个问题,1 直到外部 foreach 至少运行一次后,它似乎才运行,因此第一行会丢失一些通常来自总工作时间的数据例子。 2,它似乎只加载每次出现的第一行,所以我只得到“hours_worked”的第一个值,而不是总计。
$users = Users::getAllUsers();
foreach ($users as $user => $find_user)
{
$user_data = $find_user['user_obj']; //this is so all users can be listed on the datagrid at all times rather than only show up if date range/user_id matches. I have the query function assigning variables to the array items. (ex. $name prints the name at this point if I call it in the html table)
$tech_data = Maintenance::getTechDataByDateRangeAndUser($month, $year, $techs->uid ); //unlike the above that gets all, this one gets data by type "techs" in the query and then by specific user_id within a month year date range.
//all I want to do at this point is tally the 'hworked' field (pre-assigned as $hworked in the query function) for all rows occurring for each tech.
foreach ($tech_data as $data => $find_tech_data)
{
$worked_hours_total = 0;
$tech_occurrence = $find_tech_data['hused'];
$tech_occurrence_hours = $tech_occurrence;
$worked_hours_total += doubleval($tech_occurrence_hours);
}
$tech_hours = $worked_hours_total;
}
?>
最佳答案
我强烈怀疑您只需查询即可解决此问题。我不知道您的确切表/列名称,因此我将尝试一下。
SELECT u.*
, SUM(h.hours_worked)
FROM user u
LEFT JOIN hours h
ON u.user_id = h.user_id
GROUP BY u.user_id
您可以更进一步,为您的日期范围添加一个 where 子句。以六月为例
SELECT u.*
, SUM(h.hours_worked)
FROM user u
LEFT JOIN hours h
ON u.user_id = h.user_id
WHERE ( DATE(h.date) >= '2009/06/01' AND DATE(h.date) < '2009/07/01' )
GROUP BY u.user_id
关于php - 使用 PHP 对 MySQL 表中特定字段的总值进行求和,并以数组形式提取整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1229496/
创建我用下面的代码制作了分布图: from numpy import * import numpy as np import matplotlib.pyplot as plt sigma = 4.1
我想我已经尝试了这方面的所有方法,但我无法弄清楚这一点。我只是想在用户增加数量时更新表中每一行的总价。到目前为止我已经尝试过 HTML 中的数学:data-bind="text: parseFloat
我的数据库中有一个表,如下所示: id | date | amount ======================== 1 | 2015-01-26 | 1000 2 | 2015-
我有一个条形图,总值通常重叠在上面,如下所示。我尝试减少图形的面积、宽度和高度,这个问题得到解决,但对于其他一些值再次出现,是否有任何永久的解决方案来避免重叠? 请查找下面的代码 $('#' + d
我一直在四处寻找,似乎找不到这个问题的答案,希望得到任何帮助。 简而言之,我有两个表:付款表和成员(member)表。 我已执行以下操作来查找成员(member) ID 与付款 ID 列中的 ID 匹
我是一名优秀的程序员,十分优秀!