villiwalla
@villiwalla
HTML-верстка

Как отобразить рабочие часы сотрудника в табеле, в соответсвии с датой?

Подскажите как показать отработанные часы сотрудника в табеле, в соответсвии с датой ячейки? Полёт фантазии на данном этапе совсем отключился и ни как не могу найти решения как показать данные так что они были в соответсвии с Сотрудник <=> Дата <=> кол-во часов.
Сейчас есть БД где 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>

Визуализация:
b6403a65d88a4600867969fcc4adecbb.jpg

Сейчас есть 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;

    }
  • Вопрос задан
  • 158 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
отражаешь как в табле - одной цифрой в одной ячейке
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы