我的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']);
}
?>
然后在生成代码的同时循环遍历该数组。