使用php按图像总数分配图像ID

时间:2012-11-20 20:32:30

标签: php html

我试图为从数据库返回的每个图像分配一个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等),它只返回总计数。如何为每个返回的图像指定一个单独的数字?

欢迎所有帮助。谢谢!

4 个答案:

答案 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;
}

?>