【问题标题】:I can't get all images from database Only single Image get from database我无法从数据库中获取所有图像仅从数据库中获取单个图像
【发布时间】:2019-07-08 06:22:26
【问题描述】:

这是我的模特造型

public function fetchimage(){
        $this->db->select('u_id,file_name');
        $this->db->from('image');
        if($this->session->userdata('id')){
            $this->db->where('u_id',$this->session->userdata('id'));
            $query = $this->db->get();
            $query->result_array();
            $result = $query->row_array();
            echo '<pre>';
            print_r($query);
            die();
        }
        return !empty($result)?$result:false;
    }

这是我的观点

<?php 
            $this->load->model('user');
            $data['uploadData'][] = $this->user->fetchimage();
            ?>
            <div class="row">
                <ul class="gallery">
                    <?php if($data['uploadData']){ foreach($data['uploadData'] as $data['uploadData']){
                    ?>
                    <li class="item">
                        <img src="<?php echo base_url('/assets/uploads/files/'.$data['uploadData']['file_name']); ?>" >
                    </li>
                    <?php } }else{ ?>
                    <p>Image(s) not found.....</p>
                    <?php } ?>
                </ul>
            </div><br>

图像未全部打印。它只打印一张图像。虽然我采取 foreach 循环。 在模型中我打印查询,即打印所有图像,但在视图中它不打印图像。

【问题讨论】:

  • 更新 $data['uploadData'][] = $this->user->fetchimage() 到 $data['uploadData'] = $this->user->fetchimage() 并检查一次
  • 我试过但它显示错误文件名的非法字符串偏移
  • 如果删除代码echo '&lt;pre&gt;'; print_r($query); die();会怎样?
  • 它只显示一张图片而不是全部

标签: php sql codeigniter foreach


【解决方案1】:

试试这个,

row_array() 将为您提供具有数组格式的数组的单行,result_array() 将为您提供具有数组格式的数组的多行。

public function fetchimage(){
        $this->db->select('u_id,file_name');
        $this->db->from('image');
        if($this->session->userdata('id')){
            $this->db->where('u_id',$this->session->userdata('id'));
            $query = $this->db->get();
            $result = $query->result_array();
            echo '<pre>';print_r($query);die();
        }
        return !empty($result)?$result:false;
    }

查看:

<?php
$this->load->model('user');
$data['uploadData'] = $this->user->fetchimage();
?>
<div class="row">
     <ul <?php if ($data['uploadData']) {
           foreach ($data['uploadData'] as $rowData) { ?>
               <li class="item">
                   <img src="<?php echo base_url('/assets/uploads/files/' .$rowData['file_name']); ?>" >
               </li>
           <?php } } else { ?>
           <p>Image(s) not found.....</p>
         <?php } ?>
    </ul>
</div>
<br>

【讨论】:

  • 我已经尝试过了,它显示了所有数据,但在查看模式下它不显示数据。它只显示一张图片
  • 从 `$data['uploadData'][] 中删除最后一个 [] 括号并尝试
  • 我试过但它显示错误 illegal string offset 'file_name'
  • 刚刚更新了你的foreach循环,请检查并告诉我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-24
  • 2019-06-09
  • 2018-06-08
  • 2011-08-14
相关资源
最近更新 更多