2012-04-02 97 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子句实际上可以帮助你,但如果你知道他们在专辑顺序,你可以实现不同的解决方案 - 你只需要检查时,它转变下一张专辑....好吧,现在我正在想它,也许这是一个更简单的...