CodeIgniter加入不工作select

时间:2014-01-14 06:26:46

标签: php mysql codeigniter

实际上我正在尝试返回包含其他两个表中数据的特定行,我使用CodeIgniter作为框架,我不知道出了什么问题:/

我注意到它只显示来自(usuarios)的数据,没有来自(filiais)或(func_professores)...这里是我的模型文件中的函数,尝试了我在Stack上找到的所有内容,似乎没有任何工作,如果任何人都可以给我一个手,我会感激,因为我对sql和查询很好。

    function ver_usuario($user_id){
    $this->db->where('usuarios.id = "'.$user_id.'"'); // 1 = Administrador, 3 = Recepcionista, 4 = Professores/Personal Trainers, 5 = Gerente
    $this->db->select('usuarios.id, usuarios.email, usuarios.nome, usuarios.sobrenome, usuarios.cpf, usuarios.sexo, usuarios.data_nascimento, usuarios.telefone, usuarios.celular, usuarios.endereco, usuarios.numero, usuarios.cep, usuarios.bairro, usuarios.cidade, usuarios.estado, usuarios.filial, usuarios.usuario_tipo, usuarios.data_cadastro, filiais.filial_nome, func_professores.fp_email, func_professores.fp_cpf, func_professores.fp_formacao, func_professores.fp_instituicao, func_professores.fp_cref, func_professores.fp_telefone, func_professores.fp_endereco, func_professores.fp_bairro, func_professores.fp_cidade, func_professores.fp_estado');
    $this->db->from('usuarios');
    $this->db->join('filiais', 'usuarios.filial = filiais.filial_id', 'left');
    $this->db->join('func_professores', 'usuarios.cpf = func_professores.fp_cpf', 'left');
    return $this->db->get();
}

我尝试从连接中删除'left',将一个'左'和另一个'右''从两个中删除..没有任何效果。

谢谢。

3 个答案:

答案 0 :(得分:0)

更改为:

$this->db->select('usuarios.id, usuarios.email, usuarios.nome, usuarios.sobrenome, usuarios.cpf, usuarios.sexo, usuarios.data_nascimento, usuarios.telefone, usuarios.celular, usuarios.endereco, usuarios.numero, usuarios.cep, usuarios.bairro, usuarios.cidade, usuarios.estado, usuarios.filial, usuarios.usuario_tipo, usuarios.data_cadastro, filiais.filial_nome, func_professores.fp_email, func_professores.fp_cpf, func_professores.fp_formacao, func_professores.fp_instituicao, func_professores.fp_cref, func_professores.fp_telefone, func_professores.fp_endereco, func_professores.fp_bairro, func_professores.fp_cidade, func_professores.fp_estado');
$this->db->from('usuarios');
$this->db->join('filiais', 'usuarios.filial = filiais.filial_id');
$this->db->join('func_professores', 'usuarios.cpf = func_professores.fp_cpf');
$this->db->where('usuarios.id', $user_id);
return $this->db->get();

答案 1 :(得分:0)

试试这个:

 function ver_usuario($user_id){
   $this->db->select('usuarios.id, usuarios.email, usuarios.nome, usuarios.sobrenome, usuarios.cpf, usuarios.sexo, usuarios.data_nascimento, usuarios.telefone, usuarios.celular, usuarios.endereco, usuarios.numero, usuarios.cep, usuarios.bairro, usuarios.cidade, usuarios.estado, usuarios.filial, usuarios.usuario_tipo, usuarios.data_cadastro, filiais.filial_nome, func_professores.fp_email, func_professores.fp_cpf, func_professores.fp_formacao, func_professores.fp_instituicao, func_professores.fp_cref, func_professores.fp_telefone, func_professores.fp_endereco, func_professores.fp_bairro, func_professores.fp_cidade, func_professores.fp_estado');
   $this->db->where('usuarios.id', $user_id);
   $this->db->from('usuarios');       
   $this->db->join('filiais', 'usuarios.filial = filiais.filial_id');
   $this->db->join('func_professores', 'usuarios.cpf = func_professores.fp_cpf');
   return $this->db->get();
}

答案 2 :(得分:0)

    function ver_usuario($user_id)
    {
        $this->db->select('usuarios.id, usuarios.email, usuarios.nome, usuarios.sobrenome, usuarios.cpf, usuarios.sexo, usuarios.data_nascimento, usuarios.telefone, usuarios.celular, usuarios.endereco, usuarios.numero, usuarios.cep, usuarios.bairro, usuarios.cidade, usuarios.estado, usuarios.filial, usuarios.usuario_tipo, usuarios.data_cadastro, filiais.filial_nome, func_professores.fp_email, func_professores.fp_cpf, func_professores.fp_formacao, func_professores.fp_instituicao, func_professores.fp_cref, func_professores.fp_telefone, func_professores.fp_endereco, func_professores.fp_bairro, func_professores.fp_cidade, func_professores.fp_estado');
        $this->db->from('usuarios');
        $this->db->join('filiais', 'usuarios.filial = filiais.filial_id', 'left');
        $this->db->join('func_professores', 'usuarios.cpf = func_professores.fp_cpf', 'left');
        $this->db->where('usuarios.id',$user_id);
        $query = $this->db->get();
            if($query->num_rows() != 0)
            {
                return $query->result_array();
            }
            else
            {
                return false;
            }
    }

如果任何表格具有相同的列名并且在select中使用,则表示关注,然后将该列名称与表名一起使用,并使用作为关键字

(即,如果2个表具有相同的字段名称:id,我们可以通过使用 table1.id作为id1 并将 table2.id作为id2 来避免歧义)