两个相同的while循环函数,第二个没有;不起作用


Two identical while loop functions, the second doesn't work

我的php脚本有问题。脚本生成两个<ul>,一个带有图像,另一个带有缩略图。php完美地运行了第一个while循环,但我的缩略图<ul>总是空的。我一直在努力,但没有运气,我似乎无法让脚本打印出任何错误。帮助

include "../backend/connect.php";
$query = "select image_id from images where thumb != '';";
$result = mysql_query($query);
<div id="main">
    <div id="container">
        <ul>
            <?php
            while ($row = mysql_fetch_array($result)) {
                $img_id = $row['image_id'];
            ?>
            <li class="hidden" id="<?php print($img_id); ?>" style="background-image:url(/pull.php?id=<?php print($img_id);?>&thumb=false)"></li>
            <?php } ?>
            <li class="" id="focus"></li>
        </ul>
    </div>
</div>
<div id="side">
    <div id="photos"><ul>
    <?php
    while ($row = mysql_fetch_array($result)) {
        $img_id = $row['image_id'];
    ?>
        <div class="imgDiv" id="<?php print($img_id); ?>" >
            <li>
                <img src="pull.php?id=<?php print($img_id);?>&thumb=true" class="thumbnail"/>
            </li>
        </div>
    <?php
        }
    ?>
    </ul></div>
    </div>
</div>

如果使用while循环来循环结果,则不能重复两次。

调用mysql_data_seek($result, 0);将内部指针重置回第一次通过结果重新开始后的第一条记录。

听起来你可能已经读取了第一个循环中的所有行,但到了第二个循环时就没有什么可读了:)

您的第一个while循环,直到mysql_fetch_array($result)为false/空。您永远不会为$result分配新值,所以当您到达第二个while时,它会跳过循环。

如果您想对结果进行两次迭代,请将它们转储到一个数组中,并使用foreach对其进行迭代

第一次循环结果时,实际上是在清除$result对象。你可能会做一次循环,比如:

$image_ids = array();
while ($row = mysql_fetch_array($result)) {
    array_push($img_ids, $row['image_id']);
}
?>

然后在生成代码的同时循环遍历该数组。