结合2个mysql结果的输出

时间:2011-10-27 12:39:03

标签: php mysql arrays

我是PHP的新手(用于做.NET的事情),我对某些数组的东西有些麻烦。

我想要实现的是结合从我的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 />';
     }
 }

3 个答案:

答案 0 :(得分: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}

答案 1 :(得分:0)

您可以在SQL中加入,以便结果作为单个列表返回吗?然后调整循环以支持它。 SQL将是:

$ query = mysql_query(“SELECT BodyTexts.Id As BodyTextsId,Images.Id as ImagesId FROM BodyTexts JOIN Images on BodyTexts.CampaignId = Images.CampaignId WHERE CampaignId =”。$ campaign_id);

答案 2 :(得分:0)

为什么不使用UNION?

以下是一个示例:UNION example