列表与列表中特定数据的映射


mapping of list with that particular data in the list

我正在尝试显示一个图库页面,其中有不同的选项卡式列表,即从数据库中获取的图库名称。其中每个都映射了data-list-id
现在,每个图库中都有一组特定的图像。该列表如下所示:

列表 1
列表 2
列表 3
以下是显示这些列表内容的 HTML:

<div class="full-gallery details-area">
    <div class="gallery-1 gallery-all">
        <a href="img/img1.jpg" data-ngthumb="img/img1.jpg">image1</a>
        <a href="img/img1.jpg" data-ngthumb="img/img1.jpg">image1</a>
    </div>
</div>

同样是通过将gallery-1更改为gallery-2来实现的,gallery-3将与相应的列表映射。

现在我的工作是让它充满活力。我得到了结果,但有一个轻微的错误。
这是我在PHP中所做的:

<?php
$gallery_index=1;
$id=$SITE['site_settings']->cloud_site_id;
$gal="SELECT gallery_id, gallery_image_url from `cloud_site_gallery_images` where `cloud_site_id`= $id and gallery_image_status=1;";
$res = $DB->query($gal);
uasort($res,'cmp_by_gallery');?>
<?php 
$test=0;
$temp=array();
$temp[0]=$res[0]->gallery_id; ?>
<div class="full-gallery details-area">
    <?php
    foreach($res as $galleryList)
    { 
        if($temp[$test] != $galleryList->gallery_id)
        $gallery_index++;
    ?>
        <div class="gallery-<?php echo $gallery_index; ?> gallery-all"> <br>
        <a href="<?php echo WWW_GALLERY_IMAGE_PATH.'original/'.$galleryList->gallery_image_url; ?>" rel= "<?php echo $galleryList->gallery_id; ?>" data-ngthumb="<?php echo WWW_GALLERY_IMAGE_PATH.'original/'.$galleryList->gallery_image_url; ?>">image1</a>
                <?php 
                $temp[++$test]=$galleryList->gallery_id; 
                ?>
        </div>
        <?php 
    } ?>

我得到的结果与HTML中的结果不同。当$gallery_index为 1 时,它应该打印gallery-1中的所有图像,然后应该递增到 2。

<div class="gallery-1 gallery-all nanogallery_theme_light nanogallery_thumbnails_label_align_center unselectable">

</div>这是我应该得到的。在这里,所有图像都融入了这个class=gallery-1
但我得到这样的东西:


<div class="gallery-1 gallery-all nanogallery_theme_light nanogallery_thumbnails_label_align_center"> </div> <div class="gallery-1 gallery-all nanogallery_theme_light nanogallery_thumbnails_label_align_center"> </div>

在这里,每个图像都有不同的div
我无法找出确切的问题

编辑:

stdClass Object
(
    [gallery_id] => 28
    [gallery_image_url] => Hydrangeas+1416289924.jpg
)

 stdClass Object ( [gallery_id] => 28 [gallery_image_url] => Main+Qimg+D3344dabee4d48e5ee08eabff738f5dd+1416211112.png ) stdClass Object ( [gallery_id] => 28 [gallery_image_url] => Main+Qimg+A17a77318cc563cb43ae387170c79b75+1416211067.jpg ) stdClass Object ( [gallery_id] => 61 [gallery_image_url] => Img2+1416221089.jpg ) stdClass Object ( [gallery_id] => 61 [gallery_image_url] => Img1+1416221043.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Koala+1416293951.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Chrysanthemum+1416293916.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Desert+1416288139.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Lighthouse+1416293790.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Tulips+1416293867.jpg )

没错,此代码将为每个图像创建一个单独的div。您需要将div 声明从 foreach 循环中取出。试试这个:

<?php
    $galleries = array();
    foreach($res as $galleryImage)
    {
        $galleries[$galleryImage->gallery_id][] = $galleryImage->->gallery_image_url;
    }
    foreach($galleries as $galleryId => $galleryImages)
    {    
        $gallery_index++;
?>
        <div class="gallery-<?php echo $gallery_index; ?> gallery-all"> <br>
            <?php
                foreach($galleryImages as $image)
                { 
            ?>
                    <a href="<?php echo WWW_GALLERY_IMAGE_PATH.'original/'.$image; ?>" rel= "<?php echo $galleryId; ?>" data-ngthumb="<?php echo WWW_GALLERY_IMAGE_PATH.'original/'.$image; ?>">image1</a>
            <?php 
                }
            ?>
        </div>
<?php
    } 
?>