Сумма часов от времени трекера до календаря по дням

0

У меня есть функция рабочего календаря и рабочая сумма для расчета часов проекта от таймера, но я стараюсь объединить их в рабочую функцию.

См. Комментарии в коде, чтобы выяснить текущий прогресс, также представлен экран печати.

Как я могу заставить QUERY отображать SUM на основе $ year $ month и $ day_num в каждой строке в календаре?

Это мой текущий код:

<?php 

include 'db.php';

// GET USER DATA

$sql = "SELECT * FROM users where user_username = '".$_SESSION['username']."'";
$result = $mysqli->query($sql);

    while($row = $result->fetch_assoc()) {
        $loginuser_id = $_GET['id'];
    }

// GET TIME TRACKING DATA

$query = "
SELECT userhours_id, user_hours, hours_timeoccur, SUM(user_hours) as 'myhours' FROM hours h 
where h.userhours_id = $loginuser_id 
AND h.hours_timeoccur = '2018-09-15'
";

$result = $mysqli->query( $query ) or die($mysqli->error);

$row = $result->fetch_assoc();

$user_hours = $row['myhours'];

// VIEW THE SUM OF HOURS BASED ON THE DAY FROM THE QUERY ABOVE

echo $user_hours;

// THE CALENDAR

showmonth($m = $_GET['m'] ,$y = $_GET['y']);

  function showmonth($month, $year) {

    $first_day = mktime(0,0,0,$month, 1, $year);
    $title = date('F', $first_day);  
    $day_of_week = date('D', $first_day);
    $days_in_month = cal_days_in_month(0, $month, $year); 

    echo "<div id='container'>";
        echo "<div id='datenav'>";
            echo "<div id='prevbtn'>prev</div>";
            echo "<div id='date'>$title $year</div>";
            echo "<div id='nextbtn'>next</div>";
        echo "</div>";
        echo "<div id='cal'>";
            $day_num = 1;
            while ( $day_num <= $days_in_month ) { 
              $cnt = 0;
              while ($cnt < 7) {
                echo "<div id='days'>";
                echo "<h4>$day_num</h4>"; 
                echo "<h5>40h</h5>"; // HERE I WANT THE SUM OF TIME TRACKING BY EACH DAY
                echo "</div>";
                $day_num++; 
                if ($day_num > $days_in_month) {break;}
              }
            }
        echo "</div>";
    echo "</div>";

  } // end of function 

?

Текущий вывод: (146 - это СУМ всех часов в указанную дату в QUERY, и все 40h на картинке записаны вручную. Это место, которое я хочу повторить вывод QUERY для каждого дня) Изображение 174551

Желаемый результат должен состоять в том, чтобы иметь 146 в день, который он суммировал из перечисленных в календаре, и тот же для каждого дня и дня, но с теми днями дня.

Большое спасибо заранее и дайте мне знать, если вам нужны дополнительные данные!

Пример данных:

DB: hours
hours_id userhours_id projecthours_id user_hours hours_timeoccur
1        5            12377           5          2018-08-14
2        3            12378           100        2018-09-15
3        3            12378           46         2018-09-15
4        1            12378           5          2018-09-16
5        5            12379           5          2018-09-17

DB: users
user_id user_username .....
1       Adam
2       Bryan
3       Clinton
4       David
5       Eric

DB: projects
project_id project_name .....
1          My first test
2          My second test
3          My third test
4          My fourth test
5          My fifth test
  • 0
    Образцы данных и желаемые результаты действительно помогут.
  • 0
    Тогда я предоставлю это, дай мне секунду :)
Показать ещё 5 комментариев
Теги:

1 ответ

0
Лучший ответ

Догадаться!

Я переместил QUERY внутри кода календаря, и тогда все получилось просто отлично!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню