php - 同一日期只显示一个分隔符时的SQL查询
问题描述
我想用 SQL 查询列出我的数据库中的所有行,从今天开始。而且我还想用 HTML 中的 DATE 标题将它们分开,但每天只有一个日期。希望您能关注,我将在下面提供更多详细信息!
现在我的 SQL 查询看起来像这样:
SELECT * FROM hours h
JOIN projects p on h.projecthours_id = p.project_id
JOIN users u on p.project_owner = u.user_id
JOIN projects_status s ON p.project_group = s.status_id
WHERE h.hours_timeadded >= CURDATE()
GROUP BY p.project_id
ORDER BY h.hours_timeadded
输出代码现在看起来像这样:
while( $row8 = $result8->fetch_assoc() ){
extract($row8);
echo $hours_timeadded;
echo '<a href=view_project.php?id='.$project_id.'>';
echo "<div class='results_container'>";
echo '<div class="results_id">
<div class="statusbox status_id">'.$project_id.'</div>
<object><a href="my_overview.php?id='.$user_id.'"><div class="statusbox status_owner">'.$user_firstname.' '.$user_lastname.'</div></a></object>
</div>
';
这就是它在 HTML 中的样子,观察 2018-01-04 的标题列出了两次:
2018-01-01
1123 USERNAME PROJECTNAME
2018-01-02
1124 USERNAME PROJECTNAME
2018-01-04
1125 USERNAME PROJECTNAME
2018-01-04
1126 USERNAME PROJECTNAME
这就是我希望它的样子:
2018-01-01
1123 USERNAME PROJECTNAME
2018-01-02
1124 USERNAME PROJECTNAME
2018-01-04
1125 USERNAME PROJECTNAME
1126 USERNAME PROJECTNAME
任何帮助或指导都会很棒。提前致谢!
解决方案
根据你得到的和你想要的之间的差异,你的 SQL 似乎得到了正确的数据。
缺少的是显示代码 - 您需要验证您是否已经显示了日期,如果是,请跳过日期显示行。以下内容可能适用(如果没有,它应该提供有关如何获得所需结果的想法)。
$timealreadyshown = "nothing yet";
while( $row8 = $result8->fetch_assoc() ){
extract($row8);
if ($timealreadyshown <> $hours_timeadded) {
echo $hours_timeadded;
$timealreadyshown = $hours_timeadded;
}
推荐阅读
- c# - WIX 不会在 unistall 上停止 Windows 服务
- angular6 - Angular v6、rxjs v6 错误 TS2339:“OperatorFunction”类型上不存在属性“管道”
- r - 如何在R中导入不同的文件,每个文件都包含xml文件?
- geoserver - 地理服务器:没有这样的工作区 'gwc/service'
- python - 为什么我不能在代码中确定对象是 DataTime 类型?
- c# - 从本机代码控制第三方线程
- python-3.x - 使用 Gensim 进行动态主题建模/哪个代码?
- javascript - 我已将函数名称“测试”添加到关注中,但错误提示它无法识别为函数。谁能帮助我
- java - 如何在Java中转换字符集?
- jquery - 淘汰赛:未捕获的 ReferenceError:分配中的左侧无效