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

标签 php html mysql codeigniter

如何获取应该从此查询传回的数据。这是在我的模型中。我不知道我是否做对了,因为我还没有得到任何输出。我已经在 phpmyadmin 中测试了查询并且它有效。我需要能够将数据从 function get_reg2() 成功传递到我的 Controller 。

不知道return做的对不对

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);

我的 Controller 中有:

$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. In Model get_reg2($id) I assumed data is receiving.
  2. Your SQL code is working fine.

变化

  1. Model code Modified, with returning objective array.
  2. Controller Function changed.
  3. Table heading modified.
  4. foreach loop pointed with data to present.

冷藏箱

  1. HTML Table Class in Codeigniter

试试这个

在模型中

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
    }
}

在 Controller 中

$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
}    

关于php - 如何访问从 codeigniter 中的查询传递的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160421/

相关文章:

mysql - 在 MySql 中存储 .pem 文件

php - 确定 SQL UPDATE 是否更改了列的值

Javascript setInterval 方法始终返回与 PHP 方法相同的结果,但我需要更改数据

javascript - 如何使用 HTML5 缓存大图像数据

jquery - anchor 标记,使用 jQuery 转到 div 类的开头

mysql - 使用内连接随机选择 4 行

php - 数据未按正确顺序显示

php - 如何从二叉树表中获取具有父子关系的数据?

php - Laravel 按季节价格过滤产品并享受折扣

javascript - 如何避免连续触发 HTML5 DeviceOrientationEvent