Массивы в кодеигниторе - PullRequest
0 голосов
/ 12 апреля 2020

Это функция контроллера:

 public function tableMap()
{
         $nums = array("3","4","5","7");
            foreach ($nums as $num):
        $data['juns'] = $this->Hosting_model->djuns($num);
            endforeach;
        $data['tables'] = $this->Hosting_model->get_tables();
        $this->load->view('templates/header');
        $this->load->view('hosting/tableMap',$data);
        $this->load->view('templates/footer');
}

Это функция модели:

publi c функция djuns ($ num) {

        $this->db->select('clients.fullname');
        $this->db->from('tables');
        $this->db->join('clients', 'tables.phonenumber =clients.phonenumber', 'left');
        $this->db->where('num', $num);
        $query = $this->db->get();

        return $query->result_array();

}

Я пытаюсь отобразить массив значений, который возвращается из:

$data['juns'] = $this->Hosting_model->djuns($num);

Когда я отображаю его в своем представлении, я получаю только последнее значение, которое вошло в массив. Что я делаю не так?

Эта часть кода на мой взгляд:

foreach($juns as $jun):
 echo $jun['fullname'];
endforeach;

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

Вы повторяете одно и то же значение массива. Чтобы вставить все значения, используйте это как

$juns = array();

foreach ($nums as $num):
  $juns[] = $this->Hosting_model->djuns($num);
endforeach;

$data['juns'] = $juns;

Надеюсь, это поможет.

0 голосов
/ 12 апреля 2020

Здесь L oop переопределяет последний введенный элемент, поэтому вы получаете только последний элемент.

foreach ($nums as $num):
    $data['juns'] = $this->Hosting_model->djuns($num);
endforeach;

Вам нужен код вашей модели, чтобы дать некоторые предложения.

Edit Вы можете попробовать Vimal Rai 'ответ , и он будет работать (эхо в представлениях будет работать)

Вы также можете сделать следующее

В модель

$this->db->select('clients.fullname');
$this->db->from('tables');
$this->db->join('clients','tables.phonenumber=clients.phonenumber', 'left');
$this->db->where_in('num', $num); //change where to where_in
$query = $this->db->get();

return $query->result_array()

В контроллере сразу передать массив

$data['juns'] = $this->Hosting_model->djuns($nums); //no foreach loop and num -> nums

Это будет работать, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...