无法使用Codeigniter添加一定数量的行

时间:2014-05-07 15:21:06

标签: php mysql codeigniter

我有一个运行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>

1 个答案:

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

希望这有帮助。

注意:

  • ID始终以0开头,因此您应该在0和0处开始循环 不是1
  • <img>代码必须具有alt属性