Как сгруппировать заголовки страницы в PHP - PullRequest
0 голосов
/ 21 мая 2018

Я успешно создал страницу так, как хочу, однако, я перепробовал все учебники здесь, но ни один не работал

Я хочу, чтобы они отображались как групповая дата для той же даты:

Роль - ----- Имя - --- Дата
2018-05-20
Грузовик ------ Дэвид ------- 2018-05-20: 56: 09
Услуги - Кевин ------- 2018-05-21: 55: 54
Еда ------- Сэм ------- 2018-05-21: 55: 35

2018-05-20
Вождение ---- Ахмед ------ 2018-05-21: 55: 35

Никогдапомните "-----"

Итак, вот что я сделал Снимок экрана

и мой код

<?php 
while($r = mysqli_fetch_assoc($res)){
$group_date = null;
if ($group_date !== substr($r["date"], 0, 10))
$group_date = substr($r["date"], 0, 10);
> 
<tr><td><p><?= $group_date ?></p></td></tr>
<tr> 
<td><?php echo $r['role'];?></td> 
<td><?php echo $r['name']; ?></td> 
<td><?php echo $r['date']; ?></td> 
</tr> 
<?php } ?>
</tbody> 
</table>

Мой оператор выбора

SELECT * FROM `users` GROUP BY date DESC

1 Ответ

0 голосов
/ 21 мая 2018

Это определенно не самое симпатичное решение, но оно выполнит свою работу.

По сути, то, что оно делает, проверяет, отличается ли дата от текущего элемента от даты, хранящейся в $group_date.Если это так, он выводит дату в качестве заголовка для следующих столбцов и сохраняет ее обратно в $group_date.

<?php
$group_date = null;
while ($r = mysqli_fetch_assoc($res)) {
    $date = substr($r["date"], 0, 10);

    if ($group_date !== $date) {
        $group_date = $date;
        echo '<tr><td colspan="3"><p>' . $date . '</p></td></tr>';
    }

    echo <<<ROW
<tr>
    <td>{$r['role']}</td>
    <td>{$r['name']}</td>
    <td>{$r['date']}</td>
</tr>
ROW;
}
?>
</tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...