我有一个嵌套的do while循环。选项输入中的第一个循环为空白,下拉菜单中没有选项。第一个循环之后的所有其他循环都能完美地工作。我不知道为什么第一个是空白的,任何帮助都将不胜感激。
<div class="col-md-12">
<h1 align="center"><a href="images.php"><Back</a> - Current Photos in <?
echo $row_titles['title']; ?></h1>
<?php if ($totalRows_photos > 0)
{
do
{ ?>
<div class="col-md-3" style="height:350px;overflow:hidden;"><img
src="../contentimages/<?php echo $row_photos['filename']; ?>" class="img-
responsive" style="max-height:225px;" /><br />
<? if ($row_photos['catid'] == 1)
{
echo "Commercial";
}
else
{
echo "Residential";
} ?>
| <a href="images.php?id=<?php echo $row_photos['id']; ? > & amp;
action = remove">Delete</a><br />
<form name="moveit" action=" < ? phpecho $editFormAction; ?>" method="POST"
id="moveit"><select name="folder">
<?php
do
{
?>
<option value="<?php echo $row_folders['id'] ?>"<?php if (!(strcmp($row_folders['id'], $row_photos['project_id'])))
{
echo "selected=\"selected\"";
} ?>><?php echo $row_folders['title'] ?></option>
<?php
}
while ($row_folders = mysql_fetch_assoc($folders));
$rows = mysql_num_rows($folders);
mysql_data_seek($folders, 0);
$row_folders = mysql_fetch_assoc($folders);
?>
</select><input name="Move" type="submit" value="Move" />
<input name="hiddenField" type="hidden" id="hiddenField" value="<?php echo $row_photos['id']; ?>" />
<input type="hidden" name="MM_update" value="moveit" />
</form></div>
<?php
}
while ($row_photos = mysql_fetch_assoc($photos));
}
else
{
echo "<h3
align=\"center\">No photos are found!</h3>";
} ?></div>发布于 2018-06-22 14:57:14
do循环的第一次迭代从$row_folders和$row_photos返回空白值的原因是,直到第一次迭代完成(在while语句中),这些变量才被赋值。
要修复它,可以先分配变量,或者(通常情况下)只使用while循环。
首先定义变量:
$row_folders = mysql_fetch_assoc($folders);
do
{
// Your code here
}
while ($row_folders = mysql_fetch_assoc($folders));或者只使用while循环
while ($row_folders = mysql_fetch_assoc($folders))
{
// Your code here
}发布于 2018-06-22 15:00:29
在do循环中,条件在执行循环中的语句后进行测试。您应该将其更改为只将条件移到顶部以获取第一行时请注意,在第二次迭代中,您将得到第一行,因为在第一次迭代执行中,第一行尚未被获取。
https://stackoverflow.com/questions/50990587
复制相似问题