Mysqli和PHP循环查询

时间:2016-08-27 09:23:08

标签: php mysqli

我正在尝试获取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中使用一些循环或函数,这样行变得越来越有效。但是在使用循环后得到错误。

访问截屏http://uploadpie.com/EkSFK

1 个答案:

答案 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);