因此,假设我的服务器上有许多由用户上传的图像。每张图片在数据库中也有一行,其中包含文件名、类别、文件大小、扩展名和位置等信息。
当我想显示这些图像时,我使用 mysql_query 和 while 循环。这行得通,但是图片都有不同的大小,并且它们彼此相邻或彼此下方显示,这看起来非常糟糕。
假设我有 20 张这样的图像,我怎样才能将 5 张图像并排显示,4 行长???
假设包含图像数据的数字索引对象数组:
<div class="row">
<?php
// loop through all my images taking the index and image object
foreach( $images as $idx=>$image ) {
// If this isn't the 1st image & the modulus of 5 and $idx is 0, make a new row.
if( $idx > 0 && !(5%$idx) ) {
</div><div class="row">
}
// Print out the image
echo '<img src="' . $image->filename . '" />';
} ?>
</div>
如果将第一个数字除以第二个数字,则模数基本上是余数。因此,当我们打印了 5 张图像时,5/5=1 没有余数,所以我们创建了一个新行。
我相信这会创造出类似的东西:
<div class="row">
<img src="img1.jpg" />
<img src="img2.jpg" />
<img src="img3.jpg" />
<img src="img4.jpg" />
<img src="img5.jpg" />
</div>
<div class="row">
<img src="img6.jpg" />
<img src="img7.jpg" />
<img src="img8.jpg" />
<img src="img9.jpg" />
<img src="img10.jpg" />
</div>
然后可以使用 CSS 设置样式:
<style type="text/css">
div.row {
clear:left;
}
div.row img {
float:left;
}
</style>
在调整图像大小时,您有 2 个选项:
编辑:在回答你的问题时,你需要做这样的事情来获取图像数组:
<?php
// Build an array of images
$sql = 'SELECT * FROM images';
$result = mysql_query( $sql );
while( $obj = mysql_fetch_object( $result ) ) {
$images[] = $obj;
}
?>
伪代码
$i = 0;
while($row = mysql_fetch_object($result) {
//displaying image
....
if($i % 4 == 0) {
echo '<BR>';
}
$i++;
}