Столбец ‘id’ в выражении where неоднозначен для 3 таблиц Codeigniter

Я в настоящее время делаю систему. В системе есть модуль управления резидентом; где управляющий резидент получит информацию о резиденте, если он не женат, женат и имеет ребенка (например, имя, отчество и фамилия).

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

Столбец 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>

0

Решение

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

так измени

$this->db->where('id',$id);

в

$this->db->where('resident.id',$id);
2

Другие решения

Вы можете попробовать это решение для вашей проблемы:

Запрос:

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();
}

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

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector