-2

好的,这就是我所拥有的...

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

提供者进行冒险,并且在每次冒险中都有活动

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

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

冒险活动存储在一个名为“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
                    )

            )

    )

)

4

1 回答 1

0

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

$thisProvider['activities'][] = $db->recordset($q);
于 2013-05-29T10:25:22.100 回答