专栏' id' in where子句对于3个表Codeigniter是不明确的

时间:2017-11-02 10:22:00

标签: php mysql codeigniter

我目前正在做一个系统。在系统中,有一个名为manage resident的模块;管理居民如果是单身,已婚并有孩子(例如,姓名,中间名和姓氏),将获得居民的信息。

我已经完成了添加或创建新的常驻部分,我现在正在编辑常驻部分。当我单击编辑驻留时,我遇到错误

  

专栏' id' in where子句不明确

我有3张桌子:居民,已婚和子女。居民身份证是已婚的外键,而结婚身份证是儿童表的外键。

我的每个表的数据示例(列主键,外键,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>

2 个答案:

答案 0 :(得分:2)

每当您连接具有where条件的表时,您应该使用其引用表名称来编写每个列。

所以改变

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

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

答案 1 :(得分:2)

您可以针对您的问题尝试此解决方案:

  

查询:

.tinted-image {

  width: 300px;
  height: 200px;

  background: 
    /* top, transparent red */ 
    linear-gradient(
      rgba(255, 0, 0, 0.45), 
      rgba(255, 0, 0, 0.45)
    ),
    /* bottom, image */
    url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/3/owl1.jpg);
}

我希望它会对你有所帮助。