返回来自三个表的结果,其中第三个表';的查询是从一个分解字段生成的


returning a result from three tables, where the third table's query is built from an exploded field

好的,这是我得到的。。。

我有一张包含提供者、冒险和活动的表格

提供商进行冒险,在每次冒险中都有活动

我有三张桌子、供应商、冒险和活动——一项活动可以是室内、室外或水上活动,一次冒险可以有多种活动。

在我的供应商列表中,我需要显示活动类型(室内、室外和水上(

冒险的活动存储在一个名为"adventureActivities"的字段中,由每个带有数组分隔符的activityID记录,因此我将分解该字段,并在活动表上进行第二次查询,以获取提供者的每个活动类型。

我的问题是,我只为每个提供者获得一种活动类型?

        $db = $this->getConnection();
    $q = "SELECT * FROM content_providers p
        LEFT OUTER JOIN content_adventures a ON p.providerID = a.providerID
        WHERE providerStatus = '" . getMinimumStatus() . "'
        GROUP BY p.providerID";
    $this->_providers = $db->recordset($q);
    foreach ($this->_providers as &$thisProvider) {
        $adventureActivities = explode("|--array separator--|", $thisProvider['adventureActivities']);
        foreach ($adventureActivities as $activityID) {
            $db = $this->getConnection();
            $q = "SELECT * FROM content_activities WHERE activityID = '" . $activityID . "'";
            $thisProvider['activities'] = $db->recordset($q);

        }
    }

所以这就是返回的内容,多次返回。。。

Array
(
[0] => Array
    (
        [providerID] => 8rnsvt6Q7
        [userID] => 
        [providerName] => funholidays
        [providerCoverImage] => 
        [providerLogoImage] => samplelogo_copy1.jpg
        [providerDescription] => <p>
Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. <a href="http://google.com">Nulla facilisi</a>. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu.<br />
&nbsp;</p>
        [providerAssociations] => 9WHh29WV5V|--array separator--|ZPhq1yVV4C
        [isPremium] => 1
        [providerStaff] => <p>
sdfsd</p>
        [providerContact] => sdf
        [providerMap] => sdf
        [bookNowEmail] => sdfsd
        [providerStatus] => 1
        [adventureID] => 1t9y8jD6qH
        [adventureTitle] => Action Man Adventure
        [adventureDesc] => <p>
Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed.<br />
&nbsp;</p>
        [adventureInfo] => <p>
Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed.<br />
&nbsp;</p>
        [adventurePrice] => 8.00
        [adventureLocation] => Sheffield
        [adventureImage] => helpicon_copy9.png
        [adventureCategory] => wTt80TWcL
        [adventureSuits] => Family
        [adventureMinAge] => 10
        [adventureMaxAge] => 60
        [adventureMaxAdults] => 6
        [adventureMaxChildren] => 6
        [adventureDuration] => Full Day
        [adventureRatio] => 1 to 4 students
        [adventureActivityTypes] => 0
        [adventureActivities] => Bcg2ThdVdM|--array separator--|LbQ9SLmsZq|--array separator--|TflTTN0VNT
        [adventureGalleries] => 
        [adventureStatus] => 1
        [activities] => Array
            (
                [0] => Array
                    (
                        [activityID] => TflTTN0VNT
                        [activityTitle] => Snowboarding
                        [activityType] => Outdoor
                        [activityImage] => helpicon.png
                        [activityStatus] => 1
                    )
            )
    )
[1] => Array
    (
        [providerID] => rn8gxmC26
        [userID] => 
        [providerName] => RockUK
        [providerCoverImage] => samplecover_copy4.jpg
        [providerLogoImage] => samplelogo_copy1.jpg
        [providerDescription] => <p>
Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed molestie augue sit amet leo consequat posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. In condimentum facilisis porta. Sed nec diam eu diam mattis viverra. Nulla fringilla, orci ac euismod semper, magna diam porttitor mauris, quis sollicitudin sapien justo in libero. Vestibulum mollis mauris enim. Morbi euismod magna ac lorem rutrum elementum. Donec viverra auctor lobortis. Pellentesque eu est a nulla placerat dignissim. Morbi a enim in magna semper bibendum. Etiam scelerisque, nunc ac egestas consequat, odio nibh euismod nulla, eget auctor orci nibh vel nisi. Aliquam erat volutpat. Mauris vel neque sit amet nunc gravida congue sed sit amet purus. Quisque lacus quam, egestas ac tincidunt a, lacinia vel velit. Aenean facilisis nulla vitae urna tincidunt congue sed ut dui. Morbi malesuada nulla nec purus convallis.<br />
&nbsp;</p>
        [providerAssociations] => 9WHh29WV5V
        [isPremium] => 1
        [providerStaff] => <p>
dfgdfsg</p>
        [providerContact] => dfgdfg
        [providerMap] => dfsgdf
        [bookNowEmail] => dsfgdfg
        [providerStatus] => 1
        [adventureID] => fV6cMTxHWb
        [adventureTitle] => Some adventure
        [adventureDesc] => <p>
dfbdf</p>
        [adventureInfo] => <p>
xcvbcvb</p>
        [adventurePrice] => 5.00
        [adventureLocation] => retewrt
        [adventureImage] => helpicon_copy11.png
        [adventureCategory] => wTt80TWcL
        [adventureSuits] => Family
        [adventureMinAge] => 5
        [adventureMaxAge] => 100
        [adventureMaxAdults] => 45
        [adventureMaxChildren] => 5
        [adventureDuration] => Half Day
        [adventureRatio] => 4gdfgdg
        [adventureActivityTypes] => 0
        [adventureActivities] => Bcg2ThdVdM
        [adventureGalleries] => 
        [adventureStatus] => 1
        [activities] => Array
            (
                [0] => Array
                    (
                        [activityID] => Bcg2ThdVdM
                        [activityTitle] => Paintball
                        [activityType] => Indoor
                        [activityImage] => helpicon_copy1.png
                        [activityStatus] => 1
                    )
            )
    )

)

而我真正想要的是。。。

Array
(
[0] => Array
    (
        [providerID] => 8rnsvt6Q7
        [userID] => 
        [providerName] => funholidays
        [providerCoverImage] => 
        [providerLogoImage] => samplelogo_copy1.jpg
        [providerDescription] => <p>
Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. <a href="http://google.com">Nulla facilisi</a>. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu.<br />
&nbsp;</p>
        [providerAssociations] => 9WHh29WV5V|--array separator--|ZPhq1yVV4C
        [isPremium] => 1
        [providerStaff] => <p>
sdfsd</p>
        [providerContact] => sdf
        [providerMap] => sdf
        [bookNowEmail] => sdfsd
        [providerStatus] => 1
        [adventureID] => 1t9y8jD6qH
        [adventureTitle] => Action Man Adventure
        [adventureDesc] => <p>
Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed.<br />
&nbsp;</p>
        [adventureInfo] => <p>
Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed.<br />
&nbsp;</p>
        [adventurePrice] => 8.00
        [adventureLocation] => Sheffield
        [adventureImage] => helpicon_copy9.png
        [adventureCategory] => wTt80TWcL
        [adventureSuits] => Family
        [adventureMinAge] => 10
        [adventureMaxAge] => 60
        [adventureMaxAdults] => 6
        [adventureMaxChildren] => 6
        [adventureDuration] => Full Day
        [adventureRatio] => 1 to 4 students
        [adventureActivityTypes] => 0
        [adventureActivities] => Bcg2ThdVdM|--array separator--|LbQ9SLmsZq|--array separator--|TflTTN0VNT
        [adventureGalleries] => 
        [adventureStatus] => 1
        [activities] => Array
            (
                [0] => Array
                    (
                        [activityID] => TflTTN0VNT
                        [activityTitle] => Snowboarding
                        [activityType] => Outdoor
                        [activityImage] => helpicon.png
                        [activityStatus] => 1
                    )
                [1] => Array
                    (
                        [activityID] => sdfsdgrgr
                        [activityTitle] => Swimming                         
                        [activityType] => Water
                        [activityImage] => helpicon.png
                        [activityStatus] => 1
                    )
               [2] => Array
                    (
                        [activityID] => dfgsdfgdfh
                        [activityTitle] => Dancing                       
                        [activityType] => Indoor
                        [activityImage] => helpicon.png
                        [activityStatus] => 1
                    )
            )
    )
[1] => Array
    (
        [providerID] => rn8gxmC26
        [userID] => 
        [providerName] => RockUK
        [providerCoverImage] => samplecover_copy4.jpg
        [providerLogoImage] => samplelogo_copy1.jpg
        [providerDescription] => <p>
Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed molestie augue sit amet leo consequat posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. In condimentum facilisis porta. Sed nec diam eu diam mattis viverra. Nulla fringilla, orci ac euismod semper, magna diam porttitor mauris, quis sollicitudin sapien justo in libero. Vestibulum mollis mauris enim. Morbi euismod magna ac lorem rutrum elementum. Donec viverra auctor lobortis. Pellentesque eu est a nulla placerat dignissim. Morbi a enim in magna semper bibendum. Etiam scelerisque, nunc ac egestas consequat, odio nibh euismod nulla, eget auctor orci nibh vel nisi. Aliquam erat volutpat. Mauris vel neque sit amet nunc gravida congue sed sit amet purus. Quisque lacus quam, egestas ac tincidunt a, lacinia vel velit. Aenean facilisis nulla vitae urna tincidunt congue sed ut dui. Morbi malesuada nulla nec purus convallis.<br />
&nbsp;</p>
        [providerAssociations] => 9WHh29WV5V
        [isPremium] => 1
        [providerStaff] => <p>
dfgdfsg</p>
        [providerContact] => dfgdfg
        [providerMap] => dfsgdf
        [bookNowEmail] => dsfgdfg
        [providerStatus] => 1
        [adventureID] => fV6cMTxHWb
        [adventureTitle] => Some adventure
        [adventureDesc] => <p>
dfbdf</p>
        [adventureInfo] => <p>
xcvbcvb</p>
        [adventurePrice] => 5.00
        [adventureLocation] => retewrt
        [adventureImage] => helpicon_copy11.png
        [adventureCategory] => wTt80TWcL
        [adventureSuits] => Family
        [adventureMinAge] => 5
        [adventureMaxAge] => 100
        [adventureMaxAdults] => 45
        [adventureMaxChildren] => 5
        [adventureDuration] => Half Day
        [adventureRatio] => 4gdfgdg
        [adventureActivityTypes] => 0
        [adventureActivities] => Bcg2ThdVdM
        [adventureGalleries] => 
        [adventureStatus] => 1
        [activities] => Array
            (
                [0] => Array
                    (
                        [activityID] => Bcg2ThdVdM
                        [activityTitle] => Paintball
                        [activityType] => Indoor
                        [activityImage] => helpicon_copy1.png
                        [activityStatus] => 1
                    )
            )
    )

)

基本上,Array每次都会用值覆盖。为了防止这种

$thisProvider['activities'][] = $db->recordset($q);