专栏' student_id'在字段列表中是不明确的

时间:2016-06-27 07:22:06

标签: php

在模型搜索中有一个get_autocomplete函数

public function get_autocomplete()
    {
        $x = array();
        $search_data = "sah"; 
        $this->db->select('student_id,filename,random,type,mime');
        $this->db->from('uploads a');
        $this->db->or_like('filename',$search_data);
        $this->db->or_like('random',$search_data);
        $this->db->or_like('type',$search_data);
        $this->db->or_like('mime',$search_data);
        $this->db->join('student-record c', 'c.student_id=a.student_id', 'left');
        $this->db->like('name',$search_data);
        $this->db->or_like('email',$search_data);
        $this->db->or_like('phone',$search_data);
        $res   = $this->db->get();
    }

但是我收到了错误消息

  

错误号码:1052

     

专栏' student_id'在字段列表中是不明确的

     

SELECT student_idfilenamerandomtypemime FROM(uploads a)LEFT JOIN student-record c上   cstudent_id = astudent_id WHERE filename LIKE'%sah%'要么   random喜欢'%sah%'或者type喜欢'%sah%'或者mime喜欢'%sah%'   和name LIKE'%sah%'或者email喜欢'%sah%'或者phone喜欢   '%SAH%'

     

文件名:C:\ wamp \ www \ ededge2 \ system \ database \ DB_driver.php

     

行号:330

帮我恢复这个。

2 个答案:

答案 0 :(得分:3)

这是因为tables(上传,学生记录)中都有student_id个键。

当您使用JOIN时,如果两个表具有相似的列名,请确保使用别名来访问特定列。

因此,您可以像这样更新您的查询,

public function get_autocomplete()
    {
        $x = array();
         $search_data = "sah"; 
        $this->db->select('a.student_id,filename,random,type,mime');
        $this->db->from('uploads a');
        $this->db->or_like('filename',$search_data);
        $this->db->or_like('random',$search_data);
        $this->db->or_like('type',$search_data);
        $this->db->or_like('mime',$search_data);
        $this->db->join('student-record c', 'c.student_id=a.student_id', 'left');
        $this->db->like('name',$search_data);
        $this->db->or_like('email',$search_data);
        $this->db->or_like('phone',$search_data);
        $res   = $this->db->get();
    }
  

字段列表中的'student_id'列不明确,这意味着它不知道必须从上传学生记录<返回哪个列值/强>

<强>更新

$this->db->select('a.student_id,filename,random,type,mime,name,phone');
// add name and phone to get it in the result-set.

答案 1 :(得分:0)

当使用我们加入的相同字段名称两个表时发生此问题。要解决此问题,您应该在获取数据“table_name.student_id as stu_id”时使用这样的问题。您的问题将得到解决,您可以通过stu_id访问student_id。