簡體   English   中英

如何訪問從 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
}    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM