我有一个运行Codeigniter的脚本,它从数据库中提取与某个产品相关的图像列表。每个产品的最大映像数为10,但这并不总是数据库中的数量。因此,我试图从数据库中提取并完成图像列表,即使它小于10.例如,
我有 图片1 图2 图3 图4来自数据库。在视图中,我试图仍然显示最后的六个图像(当然是空白数据)所以在页面本身它仍然显示容器。
这是我迄今为止编写的其他建议和建议的代码。
编辑:我的问题基本上是我如何完成图像的所有10个点,即使我从数据库中提取的内容少于上面示例中提到的内容?
从产品型号......
public function getImages($id) {
//run query
$this->db->from('images_main');
$this->db->where('images_main.product_id',$id);
$this->db->limit(10);
$this->db->order_by('img_order', 'asc');
$query = $this->db->get();
if ($query->num_rows() > 0)
{
return $query->result_array();
}else{
$this->session->set_flashdata( 'message', 'The query was not successful.' );
}
}
从视图......
<ul id="sortable">
<?php
$count = count($img);
$max = 10;
$total = $max - $count;
for($t=1; $t<=$total; $t++):
$img[] = $t;
endfor;
print_r($img);
for ($i=1; $i<=10; $i++):
?>
<li class="img_list">
<div class="photo_content">
<div class="thumbnail" id="<?php echo $i; ?>"><img src="/crop.php?w=100&h=100&f=http://www.apriltwentyfive.com/product_images/regular_images/<?php echo $img[$i]['img_name'];?>"/><a href="#" class="delete" id="<?php echo $img[$i]['img_id']; ?>"></a><a href="#" class="zoom" id="<?php echo $img[$i]['img_id']; ?>"></a></div>
<div class="uploads"><input type="text" name="photo_order" size="1" value="<?php echo $img[$i]['img_order']; ?>" readonly="readonly"/></div>
<div class="browse"></div>
</div>
</li>
<?php endfor; ?>
</ul>
答案 0 :(得分:1)
据我了解您的代码,变量$count
包含数据库中的条目数。
因此,不要将for loop
设置为10,而是将其设置为$count
(或使用foreach
上的$img
。
您的$total
变量不是总数,而是要填写多少空白图片。请为此另外制作一个循环。
将两个循环放在<li class="img_list">...<li>
标记内。
<?php
$count = count($img);
$total = 10;
$difference = $total - $count;
?>
<ul id="sortable">
<?php
// Images from the database
for ($i = 0; $i <= $count - 1; $i++):
?>
<li class="img_list">
<div class="photo_content">
<div class="thumbnail" id="<?php echo $i; ?>"><img src="/crop.php?w=100&h=100&f=http://www.apriltwentyfive.com/product_images/regular_images/<?php echo $img[$i]['img_name'];?>"/><a href="#" class="delete" id="<?php echo $img[$i]['img_id']; ?>"></a><a href="#" class="zoom" id="<?php echo $img[$i]['img_id']; ?>"></a></div>
<div class="uploads"><input type="text" name="photo_order" size="1" value="<?php echo $img[$i]['img_order']; ?>" readonly="readonly"/></div>
<div class="browse"></div>
</div>
</li>
<?php endfor; ?>
<?php
// Blank images
for ($i = 0; $i <= $difference - 1; $i++):
?>
<li class="img_list">
<div class="photo_content">
<div class="thumbnail">
<img src=".../path/to/blank_photo.png" alt="Title">
</div>
</li>
<!-- rest of HTML code -->
<?php endfor; ?>
</ul>
希望这有帮助。
注意:
<img>
代码必须具有alt
属性