如何访问从codeigniter中的查询传递的数据


How do I access data passed from a query in codeigniter

如何获取应从此查询返回的数据。这是我的模型。我不知道我做得是否正确,因为我还没有得到任何输出。我已经在phpmyadmin中测试了这个查询,它可以工作。我需要能够成功地将数据从function get_reg2()传递到我的控制器。

我不知道退货是否正确

return $this->db->query($query, $data); 
Joins_model extends CI_Model....
function get_reg2($data){
$query = ('
SELECT DISTINCT
    cm_valuacion.mano_obra,
    cm_nomina.nomina,
    cm_empleado.nombre,
    cm_proveedor.nombre,
    cm_valuacion.hojalateria,
    cm_valuacion.pintura,
    cm_valuacion.mecanica,
    cm_valuacion.refaccion,
    cm_valuacion.tipo,
    cm_valuacion.shojalateria,
    cm_valuacion.spintura,
    cm_valuacion.smecanica,
    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_compras.precio,
    cm_compras.status
FROM cm_valuacionr,
    cm_nomina
INNER JOIN cm_empleado
    ON cm_nomina.id_empleado = cm_empleado.id
INNER JOIN cm_valuacion
    ON cm_valuacion.id_siniestro = cm_nomina.id_siniestro
INNER JOIN cm_compras
    ON cm_compras.id_siniestro = cm_valuacion.id_siniestro
INNER JOIN cm_proveedor
    ON cm_compras.id_proveedor = cm_proveedor.id
WHERE cm_valuacion.id_siniestro = ?
    AND cm_valuacion.id_complemento = 0
GROUP BY mano_obra
    ');
return $this->db->query($query, $data);
}
}

我也不知道我是否在这里正确地收到

 $registros = $this->joins_model->get_reg2($id);

我的控制器里有:

$registros = $this->joins_model->get_reg2($id);
    $this->load->library('table');
    $this->table->set_empty(" ");
    $this->table->set_heading(
        $this->st_cell('D'),
        $this->st_cell('CANT.'),
        $this->st_cell('PROVEEDOR'),
        $this->st_cell('NOTA'),
        $this->st_cell('DESCRIPCION'),
        $this->st_cell('COSTO'),
        $this->st_cell('VENTA'),
        $this->st_cell('EMPLEADO'),
        $this->st_cell('NOMINA'),
        $this->st_cell('TOTAL')
    );
    foreach ($registros->result() as $registro){
        //this is where I want to be able to specify what parameter I want               
        //to access from the query that was returned. How do I do this?
        //for example theres *nombre* up there and it's there twice. Once
        //for *empleado* and the other for *proveedor*
    }

并在此正确使用它;

$registros->result() as $registro

假设

  1. 在模型get_reg2($id)中,我假设数据正在接收
  2. 您的SQL代码运行良好

更改

  1. 模型代码已修改,返回目标数组
  2. 控制器功能已更改
  3. 表标题已修改
  4. foreach循环指向要显示的数据

冷藏

  1. Codeigniter中的HTML表类

试试这个

在模型中

function get_reg2($id)
{
    $query = ('
        SELECT DISTINCT
            cm_valuacion.mano_obra,
            cm_nomina.nomina,
            cm_empleado.nombre,
            cm_proveedor.nombre,
            cm_valuacion.hojalateria,
            cm_valuacion.pintura,
            cm_valuacion.mecanica,
            cm_valuacion.refaccion,
            cm_valuacion.tipo,
            cm_valuacion.shojalateria,
            cm_valuacion.spintura,
            cm_valuacion.smecanica,
            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_compras.precio,
            cm_compras.status
        FROM cm_valuacionr,
            cm_nomina
        INNER JOIN cm_empleado
            ON cm_nomina.id_empleado = cm_empleado.id
        INNER JOIN cm_valuacion
            ON cm_valuacion.id_siniestro = cm_nomina.id_siniestro
        INNER JOIN cm_compras
            ON cm_compras.id_siniestro = cm_valuacion.id_siniestro
        INNER JOIN cm_proveedor
            ON cm_compras.id_proveedor = cm_proveedor.id
        WHERE cm_valuacion.id_siniestro = ?
            AND cm_valuacion.id_complemento = 0
        GROUP BY mano_obra
            ');
        $query =  $this->db->query($query, $id); # Changed
        $result = $query->result_array(); # Added
        return $result; # Added
    }
}

在控制器中

$registros = $this->joins_model->get_reg3($id);
//var_dump($registros);
//print_r($registros);
if (empty($registros))
{
    echo "No data recived from Database";
}else{
    ?>
    <table border="2px">
    <tr>
        <th>D</th>
        <th>Cant</th>
    </tr>
        <?php
        foreach ($registros as $registro)
        {
            ?>
            <tr>
            <td><?php echo $registro['mano_obra'] ?></td> 
            <td><?php echo $registro['nomina'] ?></td> 
            </tr>
        <?php
        }
        ?>
    </table>
    <?php
}