Я в настоящее время делаю систему. В системе есть модуль управления резидентом; где управляющий резидент получит информацию о резиденте, если он не женат, женат и имеет ребенка (например, имя, отчество и фамилия).
Я сделал добавление или создание новой резидентной части, теперь я в редактировании резидентной части. Когда я нажимаю изменить резидент, я столкнулся с ошибкой
Столбец id в предложении where неоднозначен
У меня 3 таблицы: резидент, женат и дети. Идентификатор жителя — это внешний ключ женатого, в то время как идентификация женатого — это внешний ключ таблицы детей.
Мой пример данных для каждой таблицы (столбец Primary key, внешний ключ, first_name, middle_name, last_name
Resident -> id, Testing, Testing, Testing
Married -> Married_id, resident_id, Testing, Testing, Testing
Children -> id, married_id, Testing, Testing, Testing
Вопрос: Как я могу получить детей выбранного резидента? Затем отобразите его отдельно в моих полях, на мой взгляд.
контроллер
$id = $this->uri->segment(4);
$get_children = $this->Crud_model->get_children($id);
модель
public function get_children($id){
$this->db->select('*');
$this->db->from('resident');
$this->db->where('id',$id);
$this->db->join('married', 'resident.id = married.resident_id');
$this->db->join('children', 'resident.id = children.married_id');
$query = $this->db->get();
return $query->row();
}
Посмотреть
<?php $explode = explode(",",$children->first_name); ?>
<div class="form-group">
<label>First Name</label>
<input type="text" class="form-control" name="child_fname" id="child_fname"><?= $explode?>
</div>
Всякий раз, когда вы соединяете таблицы с условием where, вы должны записывать каждый столбец с именем справочной таблицы.
так измени
$this->db->where('id',$id);
в
$this->db->where('resident.id',$id);
Вы можете попробовать это решение для вашей проблемы:
Запрос:
public function get_children($id){
$this->db->select('*');
$this->db->from('resident');
$this->db->where('resident.id',$id);
$this->db->join('married', 'resident.id = married.resident_id', 'left');
$this->db->join('children', 'resident.id = children.married_id','left');
$query = $this->db->get();
return $query->row();
}
Надеюсь, это поможет вам.