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

  • 本文关键字:图像 php 分配 ID 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 等),它只是返回我总数。如何让它为返回的每个图像分配一个单独的编号?

欢迎所有帮助。谢谢!

您甚至不需要计算行数或有多个循环。只需让 $i 随着 while 循环的每次传递而递增。

$i = 0;
while ($result = mysql_fetch_assoc($query)) {
    $imgURL = $result['imageUrl'];
    echo '<img id ="' . $i . '" src="uploads/' . $imgURL . '" />';
    $i++;
}

你需要把你的回声放在你的 for 循环中:

for ($i=0; $i <= $imgID; $i++) { 
    echo "<img id ="$i" src="uploads/$imgURL"/>";
}

编辑:顺便说一句,您可能不希望以这种方式识别图像。查询中的记录顺序可能不一致,具体取决于应用程序逻辑。每条记录在数据库中都应具有唯一的 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"/>";
    }
}
?>

您可能还会出现一些一致性问题,除非 ID 来自数据库中的字段。如果您的查询没有排序,则无法保证任何特定的排序。纠正此问题的最常见方法是创建另一个名为"id"的字段,并为其提供auto_increment属性。这样,它将为您提供一个永远不会更改的唯一序列号。您也可以按此数字排序。

你应该做这样的事情。你所做的事是完全没用的,因为你在同一行中一次又一次地做同样的事情:

<?php
$imgID = 0;
while ($result  = mysql_fetch_assoc($query)) {
$imgURL = $result['imageUrl'];
echo"<img id ="$imgID" src="uploads/$imgURL"/>";
$imgID = $imgID + 1;
}
?> 

最新更新