定位数据库变量

时间:2015-01-21 13:07:19

标签: php sql

数据库+代码:

number | Photo_id | Photo| 
1        1          img.jpg 
1        2          img2.jpg
2        1          photo.jpg

while(list($nummer, $foto_id, $foto) = mysql_fetch_row($result))
{
echo "<image class=\"foto\" src=\"images/foto/$foto\">";
}

问题:

我从数据库中取出照片并将其放入变量$ photo中。当我将img.foto定位在css中时,它显然会移动我从db中获取的所有图像。如果我回复$ photo,我怎么还能用css单独定位每张照片?

4 个答案:

答案 0 :(得分:1)

您可以为其指定唯一的id属性。您需要确保$nummber是每张照片的唯一值:

while(list($nummer, $foto_id, $foto) = mysql_fetch_row($result))
{
    echo "<img class=\"foto\" id=\"photo-{$nummer}\" src=\"images/foto/{$foto}\">";
}

然后在CSS中:

#photo-1 { position: ...; },
#photo-2 { position: ...; },
#photo-(n) { position: ...; }
...

答案 1 :(得分:0)

标记为<img>而不是<image>。您可以在CSS 3中选择nth-child。对于没有CSS 3的解决方案,您可以执行以下操作:

for($i = 1; list($nummer, $foto_id, $foto) = mysql_fetch_row($result); $i++)
{
    echo "<img class=\"foto f" . $i . "\" src=\"images/foto/$foto\">";
}

在你的CSS中:img.foto.f1,img.foto.f2等。

答案 2 :(得分:0)

您可以使用您的号码加载另一个css类,在您的课程后面添加您的号码。我修改了你的代码,使其更具可读性。

while($res = mysql_fetch_assoc($result)) {
    echo '<image class="foto-{$res['number']}" src="images/foto/{$res['foto']}">';
}

编辑:如果该号码不是唯一的。然后你必须使用迭代器。

$i = 1;
while($res = mysql_fetch_assoc($result)) {
    echo '<image class="foto-{$i}" src="images/foto/{$res['foto']}">';
    $i++;
}

你也可以用它来做。

答案 3 :(得分:0)

您可以为每个标记使用style属性。使用PHP函数getimagesize http://php.net/manual/en/function.getimagesize.php,您可以找到每个图像的宽度/高度并构建所需的css值。您还可以使用HTML表或其他位置元素来获取输出。