Вот как объединить таблицы в codeigniter, но убедитесь, что теперь есть похожие имена полей, или вы должны выбрать его по отдельности и переименовать поле вручную.
$table_one = 'table_one_name';
$table_two = 'table_two_name';
$this->db->select("
$table_one.*,
$table_two.*
");
$this->db->join($table_two, "$table_two.id = $table_one.table_two_id", 'left');
$this->db->from($table_one);
$query = $this->db->get();
$result_object = $query->result();
$result_array = $query->result_array();
Примечание: если ваш кодВыше, правильно, вы должны получить результат как $result->result()
как объект или $result->result_array()
как массив.
Edit: Вот краткий пример того, какиспользуйте этот массив в вашем представлении, приведенный выше код вернет массив массивов, и вы можете обработать этот массив следующим образом:
<?php foreach ($result_array as $key => value) : ?>
<option value='<?= $value['name'] ?>' data-code='<?= $value['code'] ?>'><?= $value['id'] ?></option>
<?php endforeach; ?>
Примечание: пожалуйста, сохраните свою логику в контроллере, просто передайте результат в представление.
Редактировать: Давайте пока все упростим, предположим, ваш запрос работал нормально, и вы можете проверить это с помощью var_dump($result)
, так что теперь вам нужно передать эти данные в представлениекак бы вы ни хотели это сделать, но, предположительно, СНОВА вы получили result
в контроллере, и все работает нормально, теперь вам просто нужно передать его в вид, подобный следующему:
$data = array("result" => $result);
$this->load->view('your_view', $data);
и, по вашему мнению, просто циклчерез этот массив, используя переменную
ИМХО .. Вы должны работать с документацией codeigniter и следовать любому пошаговому руководству по codeigniter, потому что ваша проблема не в том, что выне знаю, как объединить две таблицы, речь идет о том, как использовать сам фреймворк.