我正在尝试显示一个图库页面,其中有不同的选项卡式列表,即从数据库中获取的图库名称。其中每个都映射了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
}
?>