我是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 />';
}
}
答案 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