gpt4 book ai didi

php - 在水平 View 中显示 MYSQL 查询结果

转载 作者:行者123 更新时间:2023-11-29 01:00:05 25 4
gpt4 key购买 nike

我们在 mysql 数据库中有员工考勤系统,但它没有报告功能,我正在尝试使用 PHP 生成报告。

让我解释清楚:

员工每天打卡打卡。这些打卡信息存储在mysql数据库表(考勤表)中。该表包含 5 个字段,如打卡、打卡、employeeid、note、attendanceid。我们的员工姓名和其他详细信息存储在其他表 (employee) 中。

我的查询是我想在水平 View 中使用这两个表生成报告。

例子:

第 1 列:员工姓名column2 : 打卡column3 : 打洞column4 : 打卡专栏:打洞

我能够为所有员工生成每日报告,但希望生成每周/每月报告。

请帮忙。

谢谢,拉吉

最佳答案

听起来您正在尝试进行数据透视查询(切换行和列)。 MySQL对此不支持,但可以模拟。但是,仅获取所需数据并使用 php 对其进行解析要容易得多。

听起来(这只是一个猜测)您希望员工成为第一列,并且所有打卡/打卡都在该员工的同一行中。

这是你想做的事情的破解:

$data = select_all_relevant_data_with_mysql();
$employees = array();
while ($row = $data->fetch()) {
$employees[$row['employee']][] = array(
'in' => $row['punchin']
, 'out' => $row['punchout']
);
}

(请注意,这将为每个 Employee 条目生成 undefined index 通知。您应该处理它,但它会使那里的代码加倍)。

现在您已经为每个员工安排了打卡/打卡数据(希望按顺序排列,MySQL 可以使用 ORDER BY 轻松处理)。

现在你做点什么链接:

foreach ($employees as $name => $punches) {
echo <<<HTML
<tr><td>$name</td>
HTML;
foreach ($punches as $punch) {
echo <<<HTML
<td>$punch[in]</td><td>$punch[out]</td>
HTML;
}
echo '</tr>';
}

我建议使用类似 PHPTAL 的模板系统对于这种事情。无耻的插件:)

关于php - 在水平 View 中显示 MYSQL 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com