Codeigniter3, как объединить две таблицы для одновременного отображения,

#join #codeigniter-3 #hmvc

#Присоединиться #codeigniter-3 #hmvc

Вопрос:

Я новичок в CodeIgniter. Я отображаю только свою первую таблицу, но у меня нет идеи объединять и отображать мою вторую таблицу одновременно, я попробовал руководство $this->db->join(); codeigniter3, но все равно застрял в своем проекте.

Контроллер:

 function ez($id) {
        $this->load->model('Join_model');
        $data['results']= $this->Join_model->getalldata($id);
        $this->load->view('join_view',$data);
    }
 

Модель:

 function getalldata($id) {
        $this->db->where('id',$id);
        $query = $this->db->get('tickets');
        if($query){
            return $query->row();
            
        }
    }
 

число просмотров

  <div class="col-sm-4 invoice-col">
                 <b>Ticket ID:</b>amp;nbsp <?php echo $results->id; ?><br>
                  <b>Business Name:</b>amp;nbsp <?php echo $results->bus_name; ?><br>
                  <b>Full Address:</b>amp;nbsp <?php echo $results->address; ?><br>
                  <b>Owner Name:</b>amp;nbsp <?php echo $results->owner_name; ?><br>
                  <b>Phone Number:</b>amp;nbsp <?php echo $results->owner_number; ?><br>
                  <b>Point Person:</b>amp;nbsp <?php echo $results->pt_person; ?><br>
                  <b>Phone Number:</b>amp;nbsp <?php echo $results->pt_person_number; ?><br>
                </div>
 

таблица1

 CREATE TABLE `tickets` (
  `id` int(11) NOT NULL,
  `as_name` varchar(50) NOT NULL,
  `create_date` datetime NOT NULL,
  `bus_name` varchar(255) NOT NULL,
  `address` varchar(255) NOT NULL,
  `owner_name` varchar(255) NOT NULL,
  `owner_number` int(100) NOT NULL
  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 

таблица2

 CREATE TABLE `tickets_reply` (
  `id` int(11) NOT NULL,
  `tickets_id` int(11) NOT NULL,
  `remarks` varchar(255) NOT NULL,
  `comment` varchar(255) NOT NULL
  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 

Ответ №1:

pt_person и pt_person_number, указанные в вашем файле представления, отсутствуют ни в одной из таблиц, на которые вы ссылались. Тем не менее, я думаю, это то, что вы ищете.

 function getalldata($id) {
    $this->db->select('t.id, t.bus_name, t.address, t.owner_name, t.owner_number'); // add more columns here
    $this->db->where('id', $id);
    $this->db->from('tickets t');
    $this->db->join('tickets_reply tr', 't.id = tr.tickets_id', 'left');
    return $this->db->get()->row_object();
}
 

Подробнее о методе объединения читайте здесь https://codeigniter.com/userguide3/database/query_builder.html ?выделить = присоединиться#CI_DB_query_builder::присоединиться