2012-04-02 95 views
0

我有一個從MySQL數據庫動態加載的攝影網站的3類別頁面,並且工作正常,但我想添加子類別或「專輯」每個類別。這也需要動態工作,因爲該網站是專門爲那些沒有技術頭腦的人設計的。使用mysql查詢創建動態類別和子類別

所以我想我有一個想法,只是不完全確定如何執行它。在這第一塊代碼中,圖像是如何被加載的(減去$ dynamicList中的一堆html gumpf,在這個階段沒有必要)。 在第二塊代碼中,我編輯它可以將圖像加載到單獨的「相冊」中。但是,就目前而言,它會將每張圖片加載到每張專輯中。

那麼有沒有辦法使用「GROUP BY」加載dynamicLists只包含圖像共享數據庫中的行「album_name」相同的值?

道歉,如果我沒有解釋得很好。任何幫助都感激不盡。

<?php 
include "connect_to_mysql.php"; 
$dynamicList = ""; 
$sql = mysql_query("SELECT * FROM images WHERE category = 'People' ORDER BY date_added DESC"); 
    while($row = mysql_fetch_array($sql)){ 
     $image = $row["image_name"]; 
     $src_img=imagecreatefromjpeg("photos/thumbs/thumb_".$image); 
     $date_added = strftime("%b %d, %Y", strtotime($row["date_added"])); 
     $dynamicList .= '<img class="item" src="photos/thumbs/thumb_'.$image.'"/>'; 
    } 
mysql_close(); 
?> 
<div id="image_gallery"> 
<?php echo $dynamicList; ?> 
</div> 





<?php 
include "connect_to_mysql.php"; 
$dynamicList = ""; 
$sql = mysql_query("SELECT * FROM images WHERE category = 'People' ORDER BY date_added DESC"); 
    while($row = mysql_fetch_array($sql)){ 
     $image = $row["image_name"]; 
     $src_img=imagecreatefromjpeg("photos/thumbs/thumb_".$image); 
     $date_added = strftime("%b %d, %Y", strtotime($row["date_added"])); 
     $dynamicList .= '<img class="item" src="photos/thumbs/thumb_'.$image.'"/>'; 

     $album = $row["album_name"]; 
     $albumList .= '<div class="album"><div class="album_title"><h2>'.$album.'</h2></div>'.$dynamicList.'</div>'; 
    } 
mysql_close(); 
?> 
<div id="image_gallery"> 
<?php echo $albumList; ?> 
</div> 

回答

0

是這樣的嗎? (未經測試)

<?php 
include "connect_to_mysql.php"; 
$sql = mysql_query("SELECT * FROM images WHERE category = 'People' ORDER BY date_added DESC"); 
$albums = array(); 
    while($row = mysql_fetch_array($sql)){ 
     $image = $row["image_name"]; 
     $src_img=imagecreatefromjpeg("photos/thumbs/thumb_".$image); 
     $date_added = strftime("%b %d, %Y", strtotime($row["date_added"])); 
     $listElement = '<img class="item" src="photos/thumbs/thumb_'.$image.'"/>'; 

     $albums["album_name"][]=$listElement; 
    } 
    $anames = array_keys($albums); 
    $albumList = ""; 
    foreach($anames as $albumName){ 
      $albumList .= '<div class="album"><div class="album_title"><h2>'.$albumName.'</h2></div>'.implode($albums[$albumName]).'</div>'; 
    }    
mysql_close(); 
?> 
<div id="image_gallery"> 
<?php echo $albumList; ?> 
</div> 

我不認爲一個GROUP BY子句實際上可以幫助你,但如果你知道他們在專輯順序,你可以實現不同的解決方案 - 你只需要檢查時,它轉變下一張專輯....好吧,現在我正在想它,也許這是一個更簡單的...