我只是想从2个表中选择,但我卡住了。
表1 - partners
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个表,其中第二个表具有相同的assign_id如partners_id。如果我这样做没有第二个查询工作良好显示我两个合作伙伴从表1在现场。但如果我尝试它与第二个查询总是显示我只有一个合作伙伴从table1。有什么解决办法吗?我正在考虑类似于foreach()的东西,但不确定。
谢谢
原因是在第一个循环中使用了
$query = mysql_query
第一个查询也使用了相同的
$query = mysql_query
所以在第一个循环中,它被重写了,第一个循环只执行一次。
要解决这个问题,为第二个查询指定一个不同的变量名,如$query1 = mysql_query
您在while中覆盖了$query。在下一轮中,它指向错误的语句。
然而,你根本不应该这样做。您应该在第一个查询中使用连接,并在一个语句中获取所有信息。