Подскажите как показать отработанные часы сотрудника в табеле, в соответсвии с датой ячейки? Полёт фантазии на данном этапе совсем отключился и ни как не могу найти решения как показать данные так что они были в соответсвии с Сотрудник <=> Дата <=> кол-во часов.
Сейчас есть БД где 2 таблицы:
- users - где вся инфа по пользователям
- working_time - где id_user,wrk_date,wrk_time (ид, гггг-мм-дд, чч)
А также сам табель:
<table>
<tr>
<th>№</th>
<th>Фамилия</th>
<th>Имя</th>
<!-- Числа -->
<? foreach($calendar->getMonth() as $workDay):?>
<th><?= $workDay; ?></th>
<? endforeach; ?>
<!-- Числа -->
</tr>
<!-- Вывод всех пользователей -->
<? for($i = 0; count($usersList) > $i; $i++): ?>
<tr>
<td><?= $usersList[$i]['id']; ?></td>
<td><?= $usersList[$i]['last_name']; ?></td>
<td><?= $usersList[$i]['first_name']; ?></td>
<!-- Рабочие часы -->
<? foreach($calendar->getMonth() as $workDay):?>
<td><!-- рабочие часы или кнопка на запись--></td>
<? endforeach; ?>
<!-- Рабочие часы -->
</tr>
<? endfor; ?>
<!-- Вывод всех пользователей -->
</table>
Визуализация:
Сейчас есть 2 функции которые дают получить данные из БД. Первая возвращается рабочие часы по всем сотрудникам (пока без ограничении по дате):
public function getAllUserWorkTime(){
$db = Db::getConnect();
$sql = "SELECT id_user,wrk_date,wrk_time FROM working_time";
$result = $db->query($sql);
$list = [];
$i = 0;
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$list[$i]['id'] = $row['id_user'];
$list[$i]['wrk_date'] = $row['wrk_date'];
$list[$i]['wrk_time'] = $row['wrk_time'];
$i++;
}
return $list;
}
И все записи рабочих часов по 1 сотруднику:
public function getUserWorkTime($id){
$db = Db::getConnect();
$sql = "SELECT wrk_time FROM working_time WHERE id_user = $id";
$result = $db->query($sql);
$list = [];
$i = 0;
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$list[$i] = $row['wrk_time'];
$i++;
}
return $list;
}