我只是想从2张桌子中选择,但是我被卡住了。
表1 - 合作伙伴
picture | name | department | company | country | partners_id
--------------------------------------------------------------
img.jpg | John | Developer | XYZ | Germany | 140266157291
img.jpg | John | Developer | XYZ | Germany | 540266157295
表2 - Partners_social
social_img | social_url | assign_id |
-----------------------------------------
soc_img.jpg | www.link.com | 140266157291|
soc_img.jpg | www.link.com | 140266157291|
soc_img.jpg | www.link.com | 540266157295|
索引
$query = mysql_query("SELECT * FROM `partners` ORDER BY `ID` DESC") or die(mysql_error());
while($part = mysql_fetch_assoc($query)){
$id = $part['partners_id'];
echo'
<div class="team" style="margin-top:20px;">
<div class="left_team"><img src="./admin/images/team/'.$part['picture'].'" class="team_img_circle" style="border:1px solid #c9c9c9;"></div>
<div class="right_team">
<span><img src="./admin/images/flags/'.$part['flag'].'.png" width="18" height="18" ></span><br>
<span style="font-size:16px; color:#e5007d;">'.$part['department'].'</span><br>
<span style="font-size:22px; color:#000; font-weight:bold;">'.$part['name'].'</span><br>
<span style="font-size:16px; color:#000;">'.$part['company'].'</span><br><br>
<span class="social_team">
';
$query = mysql_query("SELECT * FROM `partners_social` WHERE `assign_id`= '$id'") or die(mysql_error());
while($part_soc = mysql_fetch_assoc($query)){
if($part_soc['social_url'] == NULL){}
else{echo '<a href="'.$part_soc['social_url'].'"><img src="./admin/images/social/'.$part_soc['social_img'].'.png"></a>';}
}
echo'
</span>
</div>
<div class="clearfix"></div>
</div>
';
}
我正在尝试选择2个表,其中第二个表具有与partners_id相同的assign_id。如果我这样做没有第二个查询工作正常,向我展示来自网站 Table1 的两个合作伙伴。但是,如果我尝试使用第二个查询,则始终只向我显示 table1 中的一个合作伙伴。一些解决方案?我正在考虑像 foreach()这样的东西,但不确定。
感谢
答案 0 :(得分:3)
原因在于你正在使用的第一个循环
$query = mysql_query
第一个查询也使用相同的
$query = mysql_query
所以在第一个循环中,它会重写并且第一个循环只执行一次。
要解决此问题,请为第二个查询提供不同的变量名称
$query1 = mysql_query
答案 1 :(得分:1)
您正在覆盖$ query。在下一轮,它指出了错误的陈述。
但是,你根本不应该这样做。您应该在第一个查询中使用连接,并在一个语句中获取所有信息。