我正在尝试获取Employee
的出勤详情。
我创建了Query,并得到了正确的结果。但我希望使用循环生成查询。
详情如下
表:出勤率
列:( emp_id,emp_name,日期,现在,缺席,请假,评论)。
例如:
/* count December leave */
$sql_l_12="select * from `attendance` where `emp_id`='".$getid."' AND `leave`='1' and MONTH(dated)='12'";
$res_l_12=mysqli_query($conn,$sql_l_12);
$count_l_12= mysqli_num_rows($res_l_12);
以上相同的代码我为现在和缺席而写。
"$sql_l_12": in this l=leave ,12=month(December)
"$sql_p_08": in this p=present ,08=august
因此
3(query) * 12(months)=36 Queries.
36(Queries) * 3(line) = 108 Lines
我试图在PHP中使用一些循环或函数,这样行变得越来越有效。但是在使用循环后得到错误。
答案 0 :(得分:0)
请勿在查询中指定月份和列值,只需使用员工ID即可。然后汇总按月分组的所有列。
$sql = "SELECT MONTH(dated) AS month, SUM(`leave`) AS `leave`, SUM(present) AS present, SUM(absent) AS absent
FROM attendance
WHERE emp_id = '$getid'
GROUP BY month";
$res = mysqli_query($conn, $sql) or die(mysqli_error());
$results = array();
while ($row = mysqli_fetch_assoc($res)) {
$results[$row['month']] = $row;
}
var_dump($results);