У меня есть некоторые проблемы со списком, который необходимо отобразить на странице.Удалить дублирующиеся элементы списка, полученные из базы данных
Это что отображается в данный момент на странице.
Студенты
- Студент 3
01-02-2016 с 08:30 до 14:30 - Студенческого 1
01-06-2016 с 10:30 до 15:30 - Студент 1
01-08-2016 с 05:30 до 16:30 - Студент 3
03-05-2016 с 08:30 до 10:30 - Студент 2
01-1-2016 от 13:30 до 18:30 - Студент 1
01-02-2016 с 16:30 до 20:30
Он должен выглядеть следующим образом:
Студенты
Студент 1
01-02-2016 с 16:30 до 20:30
01-06-2016 с 10:30 до 15:30
01-08-2016 с 05:30 до 16:30Student 2
01-1-2016 от 13:30 до 18:30Студент 3
01-02-2016 с 08:30 до 14:30
03-05-2016 с 08:30 до 10:30
Эта информация поступает из базы данных:
<div id="preferences">
<h2>Leerlingen</h2>
<?php
$sql2 = "SELECT leerlingen.firstname, leerlingen.lastname,
voorkeuren.start, voorkeuren.end, voorkeuren.title FROM
leerlingen JOIN voorkeuren ON leerlingen.uid=voorkeuren.title";
$result2 = $db->query($sql2);
while ($row = $result2->fetch_assoc()) {
?>
<ul>
<li><h4><?= $row['firstname'] . " " . $row['lastname'];?></h4></li>
<?= "Van " . date('j-m-Y H:i', strtotime($row['start'])) . " tot " . date('H:i', strtotime($row['end'])) ?>
</ul>
<?php
}
?>
</div>
Я попытался решить эту проблему с помощью массива уникальный для имени студента, а затем даты ниже студенты все равно.
Почему бы вы используете группы по имени студента? – sAcH
@sAcH - возможно, потому что OP все еще требует всех рекордеров, это просто форматирование отображения, которое необходимо изменить. –
Примените предложение order by к вашему SQL-запросу; проверьте в цикле отображения и только имя дисплея студента, если он отличается от предыдущего имени студента –