简体   繁体   English

用php构建mysql数据库报告

[英]Building a mysql database report in php

How can I achieve in MySQL query a result like this:如何在 MySQL 查询中实现如下结果: 在此处输入图片说明

First of all you wil have to get all employees from database table and then iterate through their IDs to get their attendance report in your desired format首先,您必须从数据库表中获取所有员工,然后遍历他们的 ID 以获取所需格式的考勤报告

$qry_employee = mysqli_query($connection, "SELECT employee_id FROM employee");
if($qry_employee)
{
    if(mysqli_num_rows($qry_employee) > 0)
    {
        while ($employees = mysqli_fetch_array($qry_employee))
        {
            $qry_attendance = mysqli_query($connection, "SELECT e.employee_id, e.employee_name, 
                                a.am_id, a.am_out, a.pm_in, a.pm_out, a.ot_in, a.ot_out, a.date 
                                FROM employee e 
                                JOIN attendance a ON e.ID = a.ID 
                                WHERE a.date BETWEEN '2015-08-01' AND 2015-08-30' 
                                AND e.employee_id = ".$employees['employee_id']."
                                ORDER BY e.ID ASC");

            // your report generation here
        }
    }
    else
    {
        echo "No result found to display.";
    }
}
SELECT `DATE`,`am IN`,`am OUT`,`pm IN`,`pm OUT`,`OT IN`,`OT OUT` 
FROM `EMPLOYEE ATTENDANCE LOGS` 
WHERE `ID No.` = '3' 
AND `Dept.` = `ADMIN/OFFICE` 
AND `Name` = 'GOJO CRUZ, CHARLOTTE'

See Andrews answer.安德鲁斯的回答。 The reason you can only see one Employee is because in his Query, ID No. = 3.你只能看到一个 Employee 的原因是因为在他的 Query 中,ID No. = 3。

To produce this for all employees, you need a list of Employee IDs, and for each of them run this query.要为所有员工生成此信息,您需要一个员工 ID 列表,并为每个人运行此查询。

As an alternative, you could run it without ID restrictions, but you will have to group the data by ID in your Application Code, then作为替代方案,您可以在没有 ID 限制的情况下运行它,但是您必须在应用程序代码中按 ID 对数据进行分组,然后

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM