Ben bilmiyorum, benim SQL veya benim PHP ile ya biraz yardıma ihtiyacım var ki

2 Cevap php

Merhaba ben bir CMS ve içeriği dahilindedir görüntüleri yönetilebilir olduğunu bunun işlevselliği bazı oluşturma. Şu anda, içerik başlık ve ardından ilgili görüntüleri, ideal ben buna benzer bir düzen istiyorum gösteren bir tablo görüntülemek için çalışıyor

Content Title
Image 1
Image 2
Image 3
Content Title 2
Image 1
Image 2
Content Title 3
Image 1

SQL veri aslında Codeigniters Active Record sınıfını kullanarak oluşturulan döner,

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();
}

Olduğunu döndürülen dizi böyle, ben okunabilmesi için boyutunu kısmak var görünüyor.

    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
        )

Ben bir grupta aynı içeriği başlığı ile ilgili tüm içerik görüntüleri almak ve ardından içerik başlığı altında gösterilecek bir yol gerekir.

Herkes yardımcı olabilir?

2 Cevap

Ama uzun soluklu ama böyle bir şey yapabileceğini ...

$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'];
    }
}

Bu soru, bu tür benzer değildir: http://stackoverflow.com/questions/2495473/can-i-do-this-with-just-sql

Ben projemde de bu tür bir şey yapmak zorunda ve benim planı tabloları katılmak ve daha sonra elle döndürülen satırları dizi oluşturmak oldu. Sonra geri denetleyicisi ve daha sonra görünümüne bu diziyi geçerdi.

Ben bu konuda gitmek için en iyi yol olduğundan emin değilim, ama ben okudum her şey olduğunu gösterir.

Bu benim koştu başka konu ben araştırma iken - http://stackoverflow.com/questions/1186227/sql-selecting-parents-and-their-children