当我使用codeigniter活动记录发送多个表进行查询时,我收到错误

时间:2016-05-10 19:30:05

标签: php mysql codeigniter join

我尝试将所有表添加到私有变量$ table中,以便在查询后返回它们,但它会给我一个错误。错误是它告诉我,我放的表不存在。 好的,我有:

<?php 
class Joins_model extends CI_Model{
    private $table = 'cm_proveedor, cm_compras, cm_valuacion, cm_valuacionr, cm_nomina, cm_empleado';
    function _construc(){
       parent::Model();
    }

    function get_reg($data){
        $this->db->select('
                            cm_proveedor.nombre,
                            cm_valuacion.mano_obra,
                            cm_valuacion.refaccion,
                            cm_valuacionr.refaccion,
                            cm_valuacion.costoHojalateria,
                            cm_valuacion.costoPintura,
                            cm_valuacion.costoMecanica,
                            cm_valuacion.pv_hojalateria,
                            cm_valuacion.pv_pintura,
                            cm_valuacion.pv_mecanica,
                            cm_valuacion.pc_hojalateria,
                            cm_valuacion.pc_pintura,
                            cm_valuacion.pc_mecanica,
                            cm_valuacion.tipo,
                            cm_valuacion.hojalateria,
                            cm_valuacion.pintura,
                            cm_valuacion.mecanica,
                            cm_valuacion.tipo_r,
                            cm_empleado.nombre,
                            cm_compras.precio
                        ');
        $this->db->from('
                            cm_proveedor
                              INNER JOIN cm_compras
                                ON cm_proveedor.id = cm_compras.id_proveedor
                              INNER JOIN cm_valuacion
                                ON cm_compras.id_siniestro = cm_valuacion.id_siniestro
                              INNER JOIN cm_valuacionr
                                ON cm_valuacion.id_siniestro = cm_valuacionr.id_siniestro
                              INNER JOIN cm_nomina
                                ON cm_valuacionr.id_siniestro = cm_nomina.id_siniestro
                              INNER JOIN cm_empleado
                                ON cm_nomina.id_empleado = cm_empleado.id
                        ');
        $this->db->where('cm_valuacion.id_siniestro',$data);
        $this->db->order_by('id','asc');
        return $this->db->get($this->table);

    }

}
?>

我收到了错误:

数据库错误:发生数据库错误
错误号码:1103

表格名称不正确&#39; cm_proveedor&#39;

选择cm_proveedornombrecm_valuacionmano_obracm_valuacionrefaccioncm_valuacionr。{{1} },refaccioncm_valuacioncostoHojalateriacm_valuacioncostoPinturacm_valuacioncostoMecanicacm_valuacionpv_hojalateriacm_valuacionpv_pinturacm_valuacionpv_mecanicacm_valuacionpc_hojalateriacm_valuacion,{{ 1}}。pc_pinturacm_valuacionpc_mecanicacm_valuaciontipocm_valuacionhojalateria,{{1} }。cm_valuacionpinturacm_valuacionmecanicacm_valuaciontipo_rcm_empleado FROM(nombre INNER JOIN cm_compras ON cm_proveedor.id = cm_compras.id_proveedor INNER JOIN cm_valuacion ON cm_compras.id_siniestro = cm_valuacion.id_siniestro INNER JOIN cm_valuacionr ON cm_valuacion.id_siniestro = cm_valuacionr.id_siniestro INNER JOIN cm_nomina ON cm_valuacionr.id_siniestro = cm_nomina.id_siniestro INNER JOIN cm_empleado ON cm_nomina。 id_empleado = cm_empleado.id,cm_compraspreciocm_proveedorcm_proveedorcm_comprascm_valuacion)WHERE cm_valuacionr。{ {1}} =&#39; 6615&#39; ORDER BY cm_nomina asc

文件名:C:\ xampp \ htdocs \ pits \ system \ database \ DB_driver.php

行号:330

1 个答案:

答案 0 :(得分:0)

试试这个:

$this->db->select('
                        cm_proveedor.nombre,
                        cm_valuacion.mano_obra,
                        cm_valuacion.refaccion,
                        cm_valuacionr.refaccion,
                        cm_valuacion.costoHojalateria,
                        cm_valuacion.costoPintura,
                        cm_valuacion.costoMecanica,
                        cm_valuacion.pv_hojalateria,
                        cm_valuacion.pv_pintura,
                        cm_valuacion.pv_mecanica,
                        cm_valuacion.pc_hojalateria,
                        cm_valuacion.pc_pintura,
                        cm_valuacion.pc_mecanica,
                        cm_valuacion.tipo,
                        cm_valuacion.hojalateria,
                        cm_valuacion.pintura,
                        cm_valuacion.mecanica,
                        cm_valuacion.tipo_r,
                        cm_empleado.nombre,
                        cm_compras.precio
                    ');

$this->db->from('cm_proveedor');
$this->db->join('cm_compras','cm_proveedor.id = cm_compras.id_proveedor');
$this->db->join('cm_valuacion','cm_compras.id_siniestro = cm_valuacion.id_siniestro');
$this->db->join('cm_valuacionr','cm_valuacion.id_siniestro = cm_valuacionr.id_siniestro');
$this->db->join('cm_nomina','cm_valuacionr.id_siniestro = cm_nomina.id_siniestro');
$this->db->join('cm_empleado','cm_nomina.id_empleado = cm_empleado.id');
$this->db->where('cm_valuacion.id_siniestro',$data);
$this->db->order_by('id','asc');

...