加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 删除从数据库收到的重复列表项

发布时间:2020-12-13 16:08:31 所属栏目:PHP教程 来源:网络整理
导读:我有一些需要在页面中显示的列表问题. 这是当前显示在页面上的内容. 学生们 学生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 2016年1月
我有一些需要在页面中显示的列表问题.

这是当前显示在页面上的内容.

学生们

>学生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
2016年1月1日16:30至20:30

它应该看起来像:
学生们

>学生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>

我尝试使用学生姓名唯一的数组解决它,但学生下面的日期都是一样的.

解决方法

首先构建一个数组,然后遍历它并显示html

$sql2 = "SELECT leerlingen.firstname,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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读