繁体   English   中英

我需要有关SQL或PHP的帮助,但我不知道该

[英]I need some help with either my SQL or my PHP I do not know which

您好,我正在创建一个CMS,它的一些功能是可以管理内容中的图像。 我目前正在尝试显示一个显示内容标题和相关图像的表格,理想情况下,我想要一个与此类似的布局,

内容标题
图片1
图片2
图片3
内容标题2
图片1
图片2
内容标题3
图片1

SQL返回的数据实际上是使用Codeigniters Active Record类形成的,

function getAllContentImages() {
    $this->db->select('*');
    $this->db->from('contentImagesTable');
    $this->db->join('contentTable', 'contentTable.contentId = contentImagesTable.contentId');
    $this->db->join('categoryTable', 'categoryTable.categoryId = contentTable.categoryId');

    $query = $this->db->get();
    return $query->result_array();
}

返回的数组看起来像这样,为了便于阅读,我减小了尺寸。

    Array
(
    [0] => Array
        (
            [contentImageId] => 25
            [contentImageName] => green.png
            [contentImageType] => .png
            [contentImagePath] => /var/www/bangmarketing.bang/media/uploads/contentImages/2/green.png
            [isHeadlineImage] => 1
            [contentImageDateUploaded] => 1265222654
            [contentId] => 2
            [dashboardUserId] => 0
            [contentTitle] => sadsadsadassss
            [contentAbstract] => <p>Pllllleeeeeeeaaaaasssssseeeeee Work</p>
            [contentBody] => <p>Please work :-( please</p>
            [contentOnline] => 0
            [contentAllowComments] => 0
            [contentDateCreated] => 1265124038
            [categoryId] => 1
            [categoryTitle] => blogsss
            [categoryAbstract] => <p>asdsdsadasdsadfdsgdgdsgdsgssssssssssss</p>
            [categorySlug] => blog
            [categoryIsSpecial] => 0
            [categoryOnline] => 1
            [categoryDateCreated] => 1266588327
        )

    [1] => Array
        (
            [contentImageId] => 28
            [contentImageName] => yellow.png
            [contentImageType] => .png
            [contentImagePath] => /var/www/bangmarketing.bang/media/uploads/contentImages/7/yellow.png
            [isHeadlineImage] => 1
            [contentImageDateUploaded] => 1265388055
            [contentId] => 7
            [dashboardUserId] => 0
            [contentTitle] => Another Blog
            [contentAbstract] => <p>This is another blog and it is shit becuase this does not work</p>
            [contentBody] => <p>ioasfihfududfhdufhuishdfiudshfiudhsfiuhdsiufhusdhfuids</p>

            [contentOnline] => 1
            [contentAllowComments] => 0
            [contentDateCreated] => 1265388034
            [categoryId] => 1
            [categoryTitle] => blogsss
            [categoryAbstract] => <p>asdsdsadasdsadfdsgdgdsgdsgssssssssssss</p>
            [categorySlug] => blog
            [categoryIsSpecial] => 0
            [categoryOnline] => 1
            [categoryDateCreated] => 1266588327
        )

    [2] => Array
        (
            [contentImageId] => 33
            [contentImageName] => portaski.jpg
            [contentImageType] => .jpg
            [contentImagePath] => /var/www/bangmarketing.bang/media/uploads/contentImages/11/portaski.jpg
            [isHeadlineImage] => 1
            [contentImageDateUploaded] => 1265714175
            [contentId] => 11
            [dashboardUserId] => 0
            [contentTitle] => Portaski - new product and brand launch by Bang
            [contentAbstract] => <p>Bang's experience in new product development has helped launch PortaSki &ndash; the pocket-sized device which is set to revolutionise skiing.</p>
            [contentBody] => <p>After developing Portaski's brand identity and positioning, Bang re-designed the product and its packaging ahead of launch in late 2008.</p>
<p>A media and PR strategy was devised and implemented using Bang's close relationship with two of the UK's most influential organisations in the Advertising and Media Buying industries. On-line advertising was supported with editorial reviews in the UK's leading broadsheets and tabloids, which combined with pin-point HTML direct mail to drive consumers to the new e-commerce site.</p>

<p>Impressive month-on-month growth has been achieved since launch, and the direct marketing activity resulted in an unprecedented 2.71% of targets going on-line to purchase a PortaSki.</p>
<p>For further information visit <a href="http://www.portaski.com" target="_blank">www.portaski.com</a></p>
            [contentOnline] => 1
            [contentAllowComments] => 0
            [contentDateCreated] => 1265718184
            [categoryId] => 1
            [categoryTitle] => blogsss
            [categoryAbstract] => <p>asdsdsadasdsadfdsgdgdsgdsgssssssssssss</p>
            [categorySlug] => blog
            [categoryIsSpecial] => 0
            [categoryOnline] => 1
            [categoryDateCreated] => 1266588327
        )

    [3] => Array
        (
            [contentImageId] => 26
            [contentImageName] => housingplus.jpg
            [contentImageType] => .jpg
            [contentImagePath] => /var/www/bangmarketing.bang/media/uploads/contentImages/5/housingplus.jpg
            [isHeadlineImage] => 1
            [contentImageDateUploaded] => 1265284989
            [contentId] => 5
            [dashboardUserId] => 0
            [contentTitle] => Bang launches Housing Plus
            [contentAbstract] => <p>Bang has launched Housing Plus, the new brand for the Central Borders Housing Group, along with new sub-brands Property Care and SSHA.</p>
            [contentBody] => <p>The Midlands based Group, with turnover in excess of &pound;21M, appointed Bang in 2008 following an open pitch of over 40 agencies. Bang's work began with an extensive marketing research strategy that challenged the Group's former positioning and brand structure.</p>

<p>The research unveiled that the housing sector demanded a values-led Group. This led Bang to develop the brave &lsquo;Together for the Right Reasons' positioning for Housing Plus.</p>
<p>Chris Garratt, Marketing Director at Bang explained "The housing sector has witnessed wholesale change in recent years. Much to tenant's dismay, many associations and Groups appear to be losing touch with their roots, we wanted to develop a Group for associations who place principles at the heart of their corporate strategy".</p>
<p>The repositioned sub-brands also play an important role in the Group's revised brand by highlighting Housing Plus' willingness to embrace and nurture individual identities. Chris Garratt continued "By adopting a &lsquo;house of brands' hierarchy from the outset, Housing Plus has sent out a strong message to prospective strategic partners".</p>
<p>Bang handled all aspects of work for the redevelopment of the three brands, including research, brand creation, naming, positioning, internal branding and communications, advertising, the brand launches, building the brands' on-line presence and the creation of a powerful brand film &ndash; which is already attracting significant interest from across the sector.</p>
            [contentOnline] => 1
            [contentAllowComments] => 0
            [contentDateCreated] => 1265285940
            [categoryId] => 8
            [categoryTitle] => News
            [categoryAbstract] => <p>The world at Bang Marketing moves fast, keep up to date w
            [categorySlug] => news
            [categoryIsSpecial] => 0
            [categoryOnline] => 1
            [categoryDateCreated] => 1265283717
        )

我需要一种方法,可以将与同一内容标题关联的所有内容图像归为一组,然后显示在内容标题下。

有人可以帮忙吗?

但是long不休,但是你可以做类似...

$titles = array();
foreach ($query->result_array() as $row) {
    $title = $row['categoryTitle'];
    if (!in_array($title, $titles)) {
        $titles[]['title'] = $title;
    }
}

for ($i = 0; $i < count($titles); $i++) {
    $title = $titles[$i]['title'];
    $this->db->select('*');
    $this->db->from('contentImagesTable');
    $this->db->join('contentTable', 'contentTable.contentId = contentImagesTable.contentId');
    $this->db->join('categoryTable', 'categoryTable.categoryId = contentTable.categoryId');
    $this->db->where('categoryTitle', $title);
    $query = $this->db->get();
    foreach ($query->result_array() as $row) {
        $titles[$i]['images'][] = $row['contentImagePath'];
    }
}

这个问题有点类似,不是: 我可以仅使用SQL吗?

我在项目中也必须做这种事情,我的计划是联接表,然后从返回的行中手动构建数组。 然后,我将该数组传递回控制器,然后传递给视图。

我不确定这是否是最好的解决方法,但是我读过的所有内容都表明确实如此。

这是我研究时遇到的另一篇文章-SQL:选择父母及其子女

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM