2011-10-27 93 views
0

我很新的PHP(用於做.NET的東西),我有一些數組東西的麻煩。結合2 mysql結果輸出

我想實現的是結合從我的Mysql檢索的數組列表。

現在我首先遍歷我的mysql結果並將所有這些Idś複製到數組中,然後我製作一個嵌套的foreach來合併所有這些。

我不知道是否有一個捷徑/更聰明的方法來做到這一點?

貌似這個

$queryBodytext = mysql_query("SELECT * FROM BodyTexts WHERE CampaignId = " . $campaign_id); 

$queryImages = mysql_query("SELECT * FROM Images WHERE CampaignId = " . $campaign_id); 

$bodytext_ids = array(); 
while($row = mysql_fetch_assoc($queryBodytext)) 
{ 
    $bodytext_ids[] = $row['Id'];  
} 

$image_ids = array(); 
while($row = mysql_fetch_assoc($queryImages)) 
{ 
    $image_ids[] = $row['Id'];  
} 

foreach ($image_ids as $imgId) { 
    foreach ($bodytext_ids as $bodyId) { 
     echo 'Body id: ' . $bodyId . '. ImageId: '. $imgId . '<br />'; 
    } 
} 
+0

所以,如果你有5個身體,你要打印4×​​5 = 20行4圖像? –

回答

0

你可以做你的SQL聯接,使結果回來作爲一個列表?然後調整你的循環來支持它。該SQL將是:

$查詢=請求mysql_query( 「SELECT BodyTexts.Id作爲BodyTextsId,Images.Id作爲ImagesId FROM BodyTexts JOIN上BodyTexts.CampaignId = Images.CampaignId WHERE CAMPAIGNID =圖像」 $ CAMPAIGN_ID。);

1

爲什麼不在查詢本身中組合它們?

SELECT b.Id AS BodyTextId, i.Id AS ImageId 
FROM BodyTexts b 
INNER JOIN Images i ON b.CampaignId = i.CampaignId 
WHERE CampaignId = {$campaignid} 
0

爲什麼不使用UNION?

下面是一個例子:UNION example