3表1查询嵌套结果-Mysql-Php

3表1查询嵌套结果-Mysql-Php,php,mysql,sql,Php,Mysql,Sql,我有三张桌子 产品表 类别表 关系表 我想要什么 我想通过使用sql查询和php显示具有类似类别的产品 <h1>tv</h1> <span>electronics</span> <h1>phone</h1> <span>electronics</span> <span>gift</span> 我能做什么 使用JOIN和foreach,我可以得到下面的结果。但我不想那样 &l

我有三张桌子

产品表

类别表

关系表

我想要什么

我想通过使用sql查询和php显示具有类似类别的产品

<h1>tv</h1>
<span>electronics</span>

<h1>phone</h1>
<span>electronics</span>
<span>gift</span>
我能做什么

使用JOIN和foreach,我可以得到下面的结果。但我不想那样

<h1>tv</h1>
<span>electronics</span>

<h1>phone</h1>
<span>electronics</span>

<h1>phone</h1>
<span>gift</span>

达到结果的最有效的查询和循环方法是什么?

如果您按产品订购,您可以这样做

while($row=$result->fetch_object()){
$product=$row->product;
$category=$row->category;
if($product==$pcheck){
echo "<span>$category</span>";
}
else{
echo "<h1>$product</h1><span>$category</span>";
}
$pcheck=$product;
}
根据您的数据,您也可以这样做

while($row=$result->fetch_object()){
$x[$row->product][]="<span>$row->category</span>";
}
foreach ($x as $product=>$categories){
echo "<h1>$product</h1>".implode("",$categories);
}

如果答案有帮助,请标记为正确
<h1>tv</h1>
<span>electronics</span>

<h1>phone</h1>
<span>electronics</span>

<h1>phone</h1>
<span>gift</span>
while($row=$result->fetch_object()){
$product=$row->product;
$category=$row->category;
if($product==$pcheck){
echo "<span>$category</span>";
}
else{
echo "<h1>$product</h1><span>$category</span>";
}
$pcheck=$product;
}
while($row=$result->fetch_object()){
$x[$row->product][]="<span>$row->category</span>";
}
foreach ($x as $product=>$categories){
echo "<h1>$product</h1>".implode("",$categories);
}