如何从控制器传递模型中的一个mysql查询结果?

时间:2011-09-19 12:02:46

标签: mysql codeigniter codeigniter-2

在我的控制器中,我调用了一个模型,它使mysql查询从表中获取信息。它工作正常但现在在同一个函数下我想调用另一个模型并根据前一个mysql查询的结果之一进行查询。 (我想得到结果的字段名称是“批处理”)。我试图在我的控制器中获取值(批处理),将其传递给模型,然后尝试进行第二次查询,但似乎第二个模型没有从控制器获取值,因此它无法正常工作。请你帮我这个吗? 在此先感谢:)

这是我的控制器

        function Get($id){
                $this->load->model('mod_studentprofile');
                $data['query']= $this->mod_studentprofile->student_get($id);

                // To get the batch name
                $batch= $query ['batch']; // This I get from the above query result.

                $this->load->model('batchname');
                $data['query1']= $this->batchname->batchname($batch);

                $data['tab'] = "Student Profile";
                $data['main_content']='studentprofile';
                $this->load->view('includes/template',$data);

            }   

这是我的型号1

 function student_get($id)
    {
        $query=$this->db->get_where('student',array('studentid'=>$id));


        return $query->row_array();

    }   

这是我的型号2

   function batchname($batch)
    {
        $query1=$this->db->get_where('batch',array('batchid'=>$batch));

        return $query1->row_array();
    }   

2 个答案:

答案 0 :(得分:0)

嗯,你实际上并没有为$ batch分配任何东西,这是怎么回事:

$batch= $data['query'];

现在传递变量。作为旁注,您可以将其作为参数传递,并在一行中完成,依赖注入样式:

$data['query1']= $this->batchname->batchname($this->mod_studentprofile->student_get($id));

答案 1 :(得分:0)

您是从第一个查询中获取值吗?

我会记录您从控制器中的第一个查询返回的值。

log_message('debug', 'Batch value is '.$batch);

并进行一些调试以查看正在运行的查询。

function batchname($batch)
{
        $query1=$this->db->get_where('batch',array('batchid'=>$batch));
        $str = $this->db->last_query();
        log_message('debug', 'Batchname Query: '.$str);
        return $query1->row_array();
}