2014-06-16 3 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 두 번째 테이블에 partners_id와 같은 assign_id가있는 두 개의 테이블을 선택합니다. 내가 그 두 번째 쿼리없이 잘 작동한다면, 두 파트너 모두 에서 테이블 1을 보여줍니다. 하지만 그 두 번째 쿼리를 사용하여 시도해 보면 테이블 1의 파트너 중 하나만 표시됩니다. 그것에 대한 몇 가지 해결책이 있습니까? 나는 foreach()과 같은 것을 생각하고 있었지만 확실하지 않았습니다.

감사

답변

3

이유는 첫 번째 루프 내에서 당신이

$query = mysql_query 

를 사용하고있다 그리고 첫 번째 쿼리는 또한이를 통해 얻는 첫 번째 루프 내에서 그래서 같은

$query = mysql_query 

을 사용하고 있습니다 처음 루프는 한 번만 실행됩니다. 이 문제를 해결하려면

는, 당신은 당신의 동안 $ 쿼리를 덮어 쓰는

$query1 = mysql_query 
+0

완벽한 감사 :) – johnny04501

1

로 2 쿼리 뭔가 다른 변수 이름을 지정합니다. 다음 라운드에서는 잘못된 문장을 가리 킵니다.

그러나 이렇게해서는 안됩니다. 첫 번째 쿼리에서 조인을 사용하고 하나의 명령문에서 모든 정보를 얻어야합니다.

관련 문제