Как передать один из результатов запроса mysql в модель из контроллера? - PullRequest
0 голосов
/ 19 сентября 2011

В моем контроллере я вызвал модель, которая делает запрос 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 голосов
/ 19 сентября 2011

Получаете ли вы значение обратно из первого запроса?

Я бы записал значение, которое вы получаете от первого запроса в вашем контроллере.

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();
}   
0 голосов
/ 19 сентября 2011

Ну, вы на самом деле ничего не назначаете $ batch, как насчет этого:

$batch= $data['query'];

Это теперь передает переменную. В качестве примечания вы можете передать его как параметр и покончить с ним в одной строке, стиль внедрения зависимости:

$data['query1']= $this->batchname->batchname($this->mod_studentprofile->student_get($id));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...