SQL-запрос, когда одна и та же дата показывает только одно разделение - PullRequest
0 голосов
/ 30 августа 2018

Я хочу перечислить все строки из моей базы данных с SQL-запросом, начиная с сегодняшней даты и далее. И я также хочу разделить их заголовком DATE в HTML, но только по одной дате в день. Надеюсь, что вы читаете, я приведу некоторые подробности ниже!

Прямо сейчас мой SQL-запрос выглядит так:

SELECT * FROM hours h
JOIN projects p on h.projecthours_id = p.project_id
JOIN users u on p.project_owner = u.user_id
JOIN projects_status s ON p.project_group = s.status_id 
WHERE h.hours_timeadded >= CURDATE()
GROUP BY p.project_id
ORDER BY h.hours_timeadded

Код вывода выглядит следующим образом:

while( $row8 = $result8->fetch_assoc() ){

extract($row8);
echo $hours_timeadded;
echo '<a href=view_project.php?id='.$project_id.'>';
echo "<div class='results_container'>";
echo '<div class="results_id">
      <div class="statusbox status_id">'.$project_id.'</div> 
      <object><a href="my_overview.php?id='.$user_id.'"><div class="statusbox status_owner">'.$user_firstname.'&nbsp;'.$user_lastname.'</div></a></object>

</div>
';

И вот как это выглядит в HTML, обратите внимание, что заголовок 2018-01-04 указан дважды:

2018-01-01 
1123 USERNAME PROJECTNAME
2018-01-02 
1124 USERNAME PROJECTNAME
2018-01-04 
1125 USERNAME PROJECTNAME
2018-01-04
1126 USERNAME PROJECTNAME

Вот как я хочу, чтобы это выглядело так:

2018-01-01
1123 USERNAME PROJECTNAME
2018-01-02
1124 USERNAME PROJECTNAME
2018-01-04 
1125 USERNAME PROJECTNAME
1126 USERNAME PROJECTNAME

Любая помощь или руководство будет супер. Заранее спасибо!

1 Ответ

0 голосов
/ 30 августа 2018

На основании разницы между тем, что вы получаете, и тем, что вы хотите, кажется, что ваш SQL получает правильные данные.
Чего не хватает в коде дисплея - вам нужно убедиться, что вы уже показали дату, и если это так, пропустить строку отображения даты. Ниже может помочь (если нет, это должно дать представление о том, как достичь желаемого результата).

$timealreadyshown = "nothing yet";
while( $row8 = $result8->fetch_assoc() ){

extract($row8);
if ($timealreadyshown <> $hours_timeadded) {
   echo $hours_timeadded;
   $timealreadyshown = $hours_timeadded;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...