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

时间:2012-01-04 21:49:51

标签: php while-loop

我的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>

4 个答案:

答案 0 :(得分:5)

你正在使用while循环遍历结果,你不能再做两次。

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

答案 1 :(得分:1)

听起来好像你可能会读到第一个循环中的所有行,并且当你到达第二个循环时没有什么可读的了。)

答案 2 :(得分:1)

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

如果要遍历结果两次,请将它们转储到数组中并使用foreach进行迭代。

答案 3 :(得分:0)

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

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

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