删除从数据库

时间:2016-12-21 10:49:13

标签: php mysql database date html-lists

我在列表中需要显示一些问题。

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

学生

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

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

2 个答案:

答案 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)

如果它在同一个表中且有主键,请尝试使用以下查询:(对于单个表)

<强>更新

SELECT CASE WHEN t.id = (SELECT t2.id
FROM distance t2 WHERE t2.fromid = t.fromid
GROUP BY t2.id LIMIT 1)
THEN t.id
ELSE '' END AS FromId, t.toid, t.id, t.distance
FROM distance t

注意:以上查询仅返回不同的名称或ID,如果它有多个表,则必须使用JOIN。就是这样。首先尝试在一个表中使用它。

<强>输出:

prevent_duplicate