2016-05-23 175 views
0

我必须从数据库中取出最后插入的图像名称,并且需要将它传递给控制器​​函数。如何将数据库变量传递到控制器函数

型号

function getimage() 
    { 

    $maxid = $this->db->query('SELECT MAX(id) AS `maxid` FROM `brain`')->row()->maxid; 
    $this->db->select("image"); 
    $this->db->from('brain'); 
    $this->db->where('id =', $maxid); 
    $query = $this->db->get(); 
    return $query->result(); 
    } 

控制器

public function matlabcall() { 


     $command = "matlab -sd " . getcwd() . " -r MedianFiltering_denoising('" . IMAGENAME . "')"; 
     exec($command); 


    } 

我需要更换图像名称,在地方'IMAGENAME' 的。

SQL表

id image 

1 images/pic1.png 
2 images/pic2.png 

这里“图像”指的folder.I需要删除的文件夹名称,并分别获得图像名称和需要通过它的控制器功能。 请帮我做到这一点。

回答

0

通常,控制器将使用模型来获取数据,然后对模型的返回进行操作。在这种情况下,型号的返回发送到matlabcall(),这只是控制器的另一个功能。

你没有显示控制器的定义,所以我做了一个。

Controller文件:

class Brain_controller extends CI_Controller 
{ 
    public function __construct() 
    { 
    parent::__construct(); 
    $this->load->model('brain_images'); 
    } 

    public function newest_brain_image() 
    { 
    $image = $this->brain_images->get_image(); 
    $this->matlabcall($image); 
    } 

    public function matlabcall($image_name) 
    { 
    $cwd = getcwd(); 
    $command = "matlab -sd $cwd -r MedianFiltering_denoising('$image_name')"; 
    exec($command); 
    } 

} 

有使用查询生成器语法创建的是一个非常简单的查询是没有意义的。这段代码将更有效率,更易于阅读,并且可能更快。

型号文件:

class Brain_images extends CI_Model 
{ 
    function get_image() 
    { 
    $sql = "select image from brain where id = (select MAX(id) from brain)"; 
    $query = $this->db->query($sql); 
    return $query->row()->image; 
    } 

} 

希望我有正确理解您的需要和这有助于。

+0

非常感谢,你让它变得如此简单。它工作正常 – temp

相关问题