PHP 中的更多嵌套 while 循环

More nested while loops in PHP

我试图从数据库中提取一些数据,但我需要两个 while 循环来嵌套 (fetch_assoc)。问题是内部循环不循环它只是给了我数组的第一个元素,数组长度倍。

<?php
    $al_num = $_GET['album'];
    $photo_query = "SELECT photo FROM album WHERE album_number={$al_num}";
    $thumbnail_query = "SELECT thumbnail FROM album WHERE album_number={$al_num}";

    $photo_result = mysqli_query($connection, $photo_query);
    $thumbnail_result = mysqli_query($connection, $thumbnail_query);
?>




<?php while($photo = mysqli_fetch_assoc($photo_result)): ?>
    <?php while($thumb = mysqli_fetch_assoc($thumbnail_result)): ?>
        <li>
            <a href="images/<?php echo $photo['photo'] ?>" class="highslide" onclick="return hs.expand(this, config1 )">
            <img src="images/<?php echo $thumb['thumbnail'] ?>"  alt=""/>
            </a>
        </li>
<?php endwhile; ?>
<?php endwhile; ?>

为什么不保持简单?

<?php
    $al_num = $_GET['album'];
    // Really good idea to check the $_GET['album'] first ...
    $photo_query = "SELECT photo, thumbnail FROM album WHERE album_number='".mysqli_real_escape_string ($connection, $al_num)."'";
    $photo_result = mysqli_query($connection, $photo_query);

    while(list ($photo, $thumb) = mysqli_fetch_row ($photo_result)) {
        ?>
        <li>
            <a href="images/<?php echo $photo ?>" class="highslide" onclick="return hs.expand(this, config1 )">
            <img src="images/<?php echo $thumb ?>"  alt=""/>
            </a>
        </li>
        <?php
    }
?>

好吧,尝试在一个 'while' 循环中从两个表中获取数据,这就是您的操作方法

<?php while($photo = mysqli_fetch_assoc($photo_result) || $thumb = mysqli_fetch_assoc($thumbnail_result))
{ ?>

        <li>
            <a href="images/<?php echo $photo['photo'] ?>" class="highslide" onclick="return hs.expand(this, config1 )">
            <img src="images/<?php echo $thumb['thumbnail'] ?>"  alt=""/>
            </a>
        </li>
<?php } ?>