使用PHP和SQL显示相册


Display album using PHP and SQL

我有一个问题,这是非常类似的一个:显示相册与照片(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然后echoDIV对每个新专辑按专辑排序SQL。为了实现这一点,在while循环之外分配一个变量$current_album = null;,然后检查内部的变化。