2010-03-22 28 views
0

你好,我正在創建一個CMS和它的一些功能,內容中的圖像是可管理的。我目前試圖顯示的表中顯示的內容標題,然後將相關聯的圖像,最好是我想與此類似的佈局,我需要一些幫助,無論是我的SQL或我的PHP我不知道哪個

內容標題
圖像1
圖像2
圖像3
內容標題2
圖像1
圖像2
內容標題3
圖片1

的SQL使用Codeigniters活動記錄類的數據實際上形成了回報,

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 
     ) 

我需要一種方式,我可以得到所有在一組相同的內容標題相關內容的圖像,然後根據內容標題顯示。

任何人都可以幫忙嗎?

+0

你永遠需要使用$這 - > DB->選擇(「*」); – 2010-03-23 06:35:50

回答

0

但長篇大論,但你可以做這樣的事情......

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

這將返回一個數組中的所有圖像和內容標題,我希望能夠在數組中獲得內容標題和合格的內容標題?那可能嗎? – Udders 2010-03-22 15:25:01

0

這個問題是怎麼樣的類似,是不是:Can I do this with just SQL?

我在做這樣的事情以及在我的項目中,我的計劃是加入表格,然後從返回的行手動構建數組。然後,我會將該數組傳遞迴控制器,然後傳遞給視圖。

我不確定這是最好的方式去做,但我讀過的所有內容都表明它是。

這是另一篇文章中,我跑的時候我是研究成 - SQL: Selecting parents and their children