创建动态类别&带有mysql查询的子类别

时间:2012-04-02 16:07:28

标签: mysql

我有一个摄影网站的3个类别页面,这些页面是从mysql数据库动态加载的,并且工作正常,但我想添加子类别或"专辑"在每个类别中。这也需要动态工作,因为该网站是针对没有技术头脑的人。

所以我认为我有一个想法,只是不完全确定如何执行它。在第一个代码块中是如何加载当前图像(减去$ dynamicList中的一堆html gumpf,这在此阶段是不必要的)。 在第二段代码中,我编辑了它以便能够将图像加载到单独的“专辑”中。但是,就目前而言,它会将每张图片加载到每张专辑中。

那么有没有办法使用“GROUP BY”加载仅包含数据库中“album_name”行共享相同值的图像的dynamicLists?

道歉,如果我没有解释自己。任何帮助将不胜感激。

<?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>

1 个答案:

答案 0 :(得分: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子句实际上对你有帮助,但如果你知道它们是专辑顺序你可以实现一个不同的解决方案 - 你只需要检查它何时转换到下一个专辑......好吧,既然我正在考虑它,也许这有点简单......