从数据库 CodeIgniter 加载图像

Posted

技术标签:

【中文标题】从数据库 CodeIgniter 加载图像【英文标题】:Load images from database CodeIgniter 【发布时间】:2018-09-01 11:16:45 【问题描述】:

我想创建一个照片库,从数据库中获取图像。 我正在使用代码点火器。 Database

this is a static page located in views/pages/gallery.php

有人有什么想法吗?

【问题讨论】:

【参考方案1】:

您想要的是查询数据库表,获取相关字段,并将其返回到视图。在 MVC 中,它看起来像这样:

型号:

class Portfolio_model extends CI_Model 

    public function get_items() 
        $this->db->select('name, description, image');
        $this->db->order_by('date', 'DESC');
        $q = $this->db->get('tablename'); // your tablename here
        if ($q->num_rows() > 0) 
            return $q->result();
         else 
            return null;
        
    


控制器:

class Portfolio extends CI_Controller 
    public function index() 
        $this->load->helper('html');
        $this->load->model('portfolio_model');
        $data['items'] = $this->portfolio_model->get_items();
        $this->load->view('portfolio', $data);
    

查看:

if (!is_null($items)) 
    foreach ($items as $item) 
        echo $item->name . '<br>';
        echo $item->description . '<br>';
        echo 'Image src: ' . base_url() . $item->image . '<br>';  // might need slash after base_url, don't remember
        echo img($item->image);
    
 else 
    echo 'No items found!';

【讨论】:

我粘贴了所有代码并编辑了表名,但在视图文件夹的第二行出现错误。消息:未定义的变量:项目 此处定义了不可能的项目:$data['items']。再检查一遍。必须在此代码范围之外发生其他一些错误。 添加 print_r($data['items'));在控制器中的 $data['items'] 和视图中的所有内容之前的 print_r($items) 之后。看看这两种情况下数组是否都存在。 消息:未定义变量:项目文件名:pages/portfolio.php 行号:2 回溯:文件:C:\xampp\htdocs\canoa\application\views\pages\portfolio.php 行:2函数:_error_handler 文件:C:\xampp\htdocs\canoa\application\controllers\Pages.php 行:16 函数:查看 文件:C:\xampp\htdocs\canoa\index.php 行:315 函数:require_once 再次参考我之前的cmets。上面的代码是可靠的。你一定在某个地方犯了错误。将您的代码发布在 pastebin 或其他东西上 - 我猜您没有逐字使用我的代码。【参考方案2】:

这对我有用:

控制器 -

public function index()
    $this->load->model('galleryModel');
    $data1['items'] = $this->galleryModel->get_items();
    $this->load->view('gallery', $data1);

型号 -

public function get_items() 
    $this->db->select('*');
    $this->db->from('gallery');
    $query = $this->db->get();

    if($query->num_rows() != 0)
        return $query->result_array();
    else
        return false;
    

查看 -

<?php
    foreach ($items as $item)        
        $image_id = $item['image_id'];       
        $name = $item['name'];
        $category = $item['category'];
        $image = $item['image'];
        ?>

    <div class="tile scale-anm <?php echo $category; ?>">
        <a href="#"><img src="<?php echo $image; ?>" class="film-img-gallery"  /></a>
    </div>

<?php  ?>

【讨论】:

以上是关于从数据库 CodeIgniter 加载图像的主要内容,如果未能解决你的问题,请参考以下文章

图像不显示从数据库 Codeigniter 4

Jquery easyui datagrid从codeigniter控制器加载数据

Codeigniter 加载页面非常慢

我使用啥路径在codeigniter中调用背景图像

XAMPP 上的 CodeIgniter - 403/404 访问图像时出错

在 CodeIgniter 中裁剪图像以输出 FPDF