gpt4 book ai didi

php - 对查询中的值求和并将其显示在按项目 ID 过滤的表中

转载 作者:行者123 更新时间:2023-11-29 20:20:07 25 4
gpt4 key购买 nike

我一直在开发一个学校网站,但遇到了问题。我必须对不同表中的值与首页上显示的值进行求和。

让我进一步解释一下:

Front page

在此屏幕截图中,您会看到包含以下内容的标题:计划和执行

  • 计划 = 您计划在该项目上花费的总时间。
  • Do = 您在整个项目上花费的时间。

这是我用来填充表的简单查询和代码:

<?php
$query = mysqli_query($conn, "SELECT * FROM `projecten`");
while ($row = mysqli_fetch_array($query)) {?>
<tr class="active">
<td style="display:none;" class="id"><?php echo $row['ID'];?></td>
<td><?php echo $row['Naam'];?></td>
<td><?php echo $row['Plan'];?></td>
<td><?php echo $row['Do'];?></td>
<td>
<a class="btn btn-default btn-success" href="ExpandedProject.php?id=<?php echo $row['ID'];?>">Expand</a>
<a class="btn btn-default btn-danger" href="Delete_Project.php?id=<?php echo $row['ID'];?>">Verwijderen</a>
</td>
</tr>
<?php } ?>

现在我尝试做的事情:

SQL = SELECT *, sum(tasks.Plan) FROM `projecten`,`tasks`

这有效,但因为我有 1 个表用于不同项目的所有任务,所以这将添加不属于项目的任务。所以我又删除了这个。

我还尝试使用上面的查询,然后添加一个在任务表中过滤项目 ID 的位置。

我的问题是如何制作它,以便它将 Plan 和 Do 相加并正确显示这些值并按项目 ID 进行过滤

只是想让你知道,在 PHP 方面我有两只左手,所以如果代码中有一些错误,我很抱歉:)

我还想添加更多我拥有的 table 的图片,但由于我的声誉,我无法添加它们。

感谢您的帮助!

最佳答案

你可以这样做:

SELECT    p.id, 
p.naam,
coalesce(sum(t.plan),0) plan,
coalesce(sum(t.do),0) do
FROM projecten p
LEFT JOIN tasks t
ON p.id = t.projectid
GROUP BY p.id,
p.naam

LEFT JOIN 是一个外连接,它将链接两个表中的记录,并具有附加功能:如果没有找到给定 的相应 任务 记录, projecten 记录,projecten 记录仍将出现在结果中,但通常为任务记录中的列的值为 null 值。

group by 子句将聚合多个任务记录,因此每个 projecten 记录仍然只能获得一条记录。 sum 表达式告诉 SQL 引擎如何进行聚合。

包含coalesce函数是为了确保没有任何tasks记录的projecten记录不会显示null 表示计划执行,但改为 0。如果您更喜欢这种情况下的空白,请删除 coalesce(..., 0),只留下 sum(...)

关于php - 对查询中的值求和并将其显示在按项目 ID 过滤的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39548339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com