我有一个包含许多操作的表,一个字段是使用操作的日期时间“创建”的。 我需要找回一个数组,其中包含我在每周的每周,每周,每天,每周注册的动作数量。
最好做一个唯一的db请求并解析所有结果
foreach($scans as $s) {
$data['total']++;
$t = strtotime($s['Scan']['created']);
//week day
@$data['weekday'][date('w',$t)]++;
@$data['hour'][date('H',$t)]++;
@$data['day'][date('d',$t)]++;
@$data['month'][date('n',$t)]++;
}
或带有count()函数的5个查询? 感谢
答案 0 :(得分:2)
数据库可以最高效地执行这类任务。您应该将大部分数据处理卸载到数据库系统,这将为您进行各种优化,并留下PHP进行管理和演示。原则上你应该避免在PHP中循环数据来进行处理,除非你正在做演示文稿。
因此,您应该在一个查询中执行所有操作,并从数据库中获取最终结果。查看您的查询并尝试将您想要的所有内容组合到其中。也许你可以尝试从Stack Overflow获得帮助,如果你不能提出正确的查询(但打开另一个问题)。
答案 1 :(得分:0)
唯一的db请求并解析所有结果。网络开销会减少。