如何在PHP

时间:2018-05-20 21:22:10

标签: php html mysqli

我已经成功创建了我想要的页面,但是,我已经尝试了所有教程,但没有工作

我希望它们显示为同一日期的组日期:

角色 - -----姓名 - ---日期
2018年5月20日
卡车------大卫------- 2018-05-20:56:09
服务 - 凯文------- 2018-05-21:55:54
食物-------山姆------- 2018-05-21:55:35

2018年5月20日
驾驶----艾哈迈德------ 2018-05-21:55:35

别介意“-----”

所以这就是我所做的 Screenshot

我的代码是

<?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 :(得分:0)

这绝对不是那里最漂亮的解决方案,但它会做到这一点。

基本上,它会做什么,它检查当前项目的日期是否与$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>