2014-06-16 81 views
0

我只是想从2个表中选择,但我卡住了。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> 
'; 
} 

我试着g选择2个表,其中第二个表具有与partners_id相同的assign_id。如果我这样做没有第二个查询工作正常显示我的合作伙伴从表1现场。但是,如果我尝试使用第二个查询,始终只向我展示一个来自table1的合作伙伴。一些解决方案呢?我正在考虑像foreach()但不确定。

感谢

回答

3

究其原因,第一循环中使用的是

$query = mysql_query 

而第一查询也使用相同的

$query = mysql_query 

所以第一个循环的越过内写和第一个循环只执行一次。

为了解决这个问题,对于第二个查询的东西给不同的变量名

$query1 = mysql_query 
+0

完美谢谢:) – johnny04501

1

您将要覆盖$查询您的时间。在下一轮它指出了错误的说法。

但是,您不应该这样做。您应该在第一个查询中使用连接,并在一个语句中获取所有信息。