我有一个问题,这是非常类似的一个:显示相册与照片(PHP),但我需要一点帮助在应用代码到我的情况。
我有两个表,它们由AlbumID列相关联:
Album: AlbumID, name, date(optional)
Image: ImageID, name, imageURL, AlbumID
我的PHP代码:
function select_galleryimage($sql,$a_id, $img_id) {
include 'connect.php';
$result = $conn->query($sql);
if ($result->num_rows > 0);
while ($row = $result->fetch_assoc()) {
echo "<div id='".$row['AlbumID']."'>'n
<a class='$a_id' href=".$row["imageURL"]." target='_blank'>
<img src=".$row["imageURL"]." alt='".$row['name']."'>
</a>'n
</div>'n";
}
}
where $sql = SELECT * FROM album JOIN image ON album.AlbumID=image.AlbumID'
$a_id = 'lightbox' and $img_id = ''
问题,我有是如何创建一个循环,其中创建的div与图像的循环被插入,所以最终的结果是这样的:
<div id="album1" style="display:none">
<h1>Gallery</h1>
<a class="lightboxX35" href="media/Photos/_MG_7732.jpg"><img src="media/Photos/_MG_7732.jpg"></a>
<a class="lightboxX35" href="media/Photos/_MG_7508.jpg"><img src="media/Photos/_MG_7508.jpg"></a>
</div>
<标题> 画廊提前感谢大家提供的任何帮助。
标题>像这样?
if ($result->num_rows > 0) {
$current_album = null;
while ($row = $result->fetch_assoc()){
if ($current_album <> $row['AlbumID']) {
if (!empty($current_album))
echo "</div>'n";
echo "<div id='".$row['AlbumID']."'>'n";
echo "<h1>Gallery</h1>'n";
$current_album := $row['AlbumID'];
}
echo "<a class='$a_id' href='".$row["imageURL"]."' target='_blank'><img src=".$row["imageURL"]." alt='".$row['name']."'></a>'n";
}
echo "</div>'n";
}
我还没有在服务器上尝试过,所以可能不是正确的语法…
对于多个专辑,您必须使用ORDER BY
然后echo
和DIV
对每个新专辑按专辑排序SQL
。为了实现这一点,在while
循环之外分配一个变量$current_album = null;
,然后检查内部的变化。