gpt4 book ai didi

php - Mysql根据第三张表从2张表中选择特定数据

转载 作者:行者123 更新时间:2023-11-29 10:51:21 24 4
gpt4 key购买 nike

我有三张 table

tbl_project

db_projectid  db_projectname
1 test
2 xxx

tbl_activities

db_id db_projectid db_category
1 1 Civil Work
2 1 Mechanical
3 1 Electrical

tbl_dailypercentage

db_dpid  db_aid db_projectid db_status
1 1 1 red
2 1 1
3 2 1

db_projectidtbl_project 中的主键

db_idtbl_activities 中的主键,db_projectid 是外键

db_dpidtbl_dailypercentage 中的主键,db_aid 是外键我尝试了这个查询

select
activities.db_id,
activities.db_category as cat,
dailypercentage.db_status,
dailypercentage.db_aid,
dailypercentage.db_projectid
from tbl_activities as activities,tbl_dailypercentage as dailypercentage
where
dailypercentage.db_projectid='$projectId'
and
activities.db_id=dailypercentage.db_aid
and
dailypercentage.db_status='red'

但是我有一个错误

Undefined variable: cat

while($row=mysqli_fetch_array($statusQuery)){
$status=$row['db_status'];
$cat=$row['cat'];
}
<td> <?php if($cat=="Civil Work" && $status="red"){
echo"<p style='color:$status'>".($sumcivil/$civilCount)."</p>";}
else{echo ($sumcivil/$civilCount);}?>
</td>

我也尝试了很多左连接和右连接

得到我想要的结果

我想要的结果是

对于 id=1 的项目

category         status
civil work red
mechanical work
electrical work

对于 id=2 的项目

  category         status
civil work
mechanical work
electrical work

最佳答案

您展示了此代码:

while($row=mysqli_fetch_array($statusQuery)){
$status=$row['db_status'];
$cat=$row['cat'];
}

如果您的查询未返回任何行,则 $status$cat 将永远不会被定义。我想这就是出了问题的地方。如果您使用 phpMyadmin 等 MySQL 客户端运行该查询,会发生什么?

同样,如果您的查询返回多行,则 $status$cat 将仅捕获最后一行的值。

弄清楚您想要在无行和多行的情况下发生什么非常重要。

关于php - Mysql根据第三张表从2张表中选择特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43679019/

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