我在列表中需要显示一些问题。
这是当前显示在页面上的内容。
学生
应该看起来像:
的学生
学生1
2016年1月1日16:30至20:30
01-06-2016从10:30到15:30
01-08-2016 05:30至16:30
学生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>
我尝试使用学生姓名唯一的数组解决它,但学生下面的日期都是一样的。
答案 0 :(得分:1)
首先构建一个数组,然后遍历它并显示html
$sql2 = "SELECT leerlingen.firstname, leerlingen.lastname, voorkeuren.start, voorkeuren.end, voorkeuren.title
FROM leerlingen
JOIN voorkeuren
ON leerlingen.uid=voorkeuren.title group by leerlingen.firstname";
$studentArr = [];
while ($row = $result2->fetch_assoc()) {
$studentName = $row['firstname'] . " " . $row['lastname'];
if(!array_key_exists($studentName,$studentArr))
$studentArr[] = $studentName;
$studentArr[$studentName][] = $row['start'];
$studentArr[$studentName][] = $row['end'];
}
foreach($studentArr as $key => $val){
//your html code here
}
答案 1 :(得分:0)