我试图为从数据库返回的每个图像分配一个id。然后将id放入img id。 id必须来自返回的数据库行数的总计数。
<?php
while ($result = mysql_fetch_assoc($query)) {
$imgURL = $result['imageUrl'];
$imgID = mysql_num_rows($query);
for ($i=0; $i <= $imgID; $i++) {
}
echo"<img id =\"$i\" src=\"uploads/$imgURL\"/>";
}
?>
我得到的回报是图像是从数据库中显示的,但是img id不是连续数字(即1,2,3等),它只返回总计数。如何为每个返回的图像指定一个单独的数字?
欢迎所有帮助。谢谢!
答案 0 :(得分:0)
你需要把你的回声放在for循环中:
for ($i=0; $i <= $imgID; $i++) {
echo "<img id =\"$i\" src=\"uploads/$imgURL\"/>";
}
编辑: 另外,您可能不希望以这种方式识别图像。查询中的记录顺序可能不会保持一致,具体取决于您的应用程序逻辑。每条记录在数据库中都应具有唯一的ID,并且该值优于迭代计数。
答案 1 :(得分:0)
你有一个错误的支架。我已经为你重写了它:
<?php
while ($result = mysql_fetch_assoc($query)) {
$imgURL = $result['imageUrl'];
$imgID = mysql_num_rows($query);
for ($i=0; $i <= $imgID; $i++) {
echo "<img id =\"$i\" src=\"uploads/$imgURL\"/>";
}
}
?>
除非ID来自数据库中的字段,否则您可能还会遇到一些一致性问题。如果您的查询没有排序,那么您无法保证任何特定的排序。最常见的纠正方法是创建另一个名为“id”的字段,并为其赋予auto_increment属性。这样,它将为您提供永不改变的唯一序列号。您也可以按此号码排序。
答案 2 :(得分:0)
您甚至不需要计算行数或有多个循环。只需让$i
在每次循环播放时递增。
$i = 0;
while ($result = mysql_fetch_assoc($query)) {
$imgURL = $result['imageUrl'];
echo '<img id ="' . $i . '" src="uploads/' . $imgURL . '" />';
$i++;
}
答案 3 :(得分:0)
你应该做这样的事情。你做的事情完全没用,因为你在同一行中反复做同样的事情:
<?php
$imgID = 0;
while ($result = mysql_fetch_assoc($query)) {
$imgURL = $result['imageUrl'];
echo"<img id =\"$imgID\" src=\"uploads/$imgURL\"/>";
$imgID = $imgID + 1;
}
?>